| ; RUN: llc < %s -mtriple=thumbv7-apple-ios -arm-atomic-cfg-tidy=0 | FileCheck %s |
| |
| ;CHECK-LABEL: foo: |
| ;CHECK: movs r0, #0 |
| ;CHECK-NEXT: bx lr |
| |
| ; Note: This test case originally checked, per r167963, for: |
| ; adds |
| ; adc |
| ; bx |
| ; But SDAG now, like InstCombine, can fold everything away. |
| ;rdar://12028498 |
| |
| define i32 @foo() nounwind ssp { |
| entry: |
| %tmp2 = zext i32 3 to i64 |
| br label %bug_block |
| |
| bug_block: |
| %tmp410 = and i64 1031, 1647010 |
| %tmp411 = and i64 %tmp2, -211 |
| %tmp412 = shl i64 %tmp410, %tmp2 |
| %tmp413 = shl i64 %tmp411, %tmp2 |
| %tmp415 = and i64 %tmp413, 1 |
| %tmp420 = xor i64 0, %tmp415 |
| %tmp421 = and i64 %tmp412, %tmp415 |
| %tmp422 = shl i64 %tmp421, 1 |
| br label %finish |
| |
| finish: |
| %tmp423 = lshr i64 %tmp422, 32 |
| %tmp424 = trunc i64 %tmp423 to i32 |
| ret i32 %tmp424 |
| } |
| |