1 ; RUN: llc < %s -mtriple=thumbv7-apple-ios -arm-atomic-cfg-tidy=0 | FileCheck %s 2 3 ;CHECK-LABEL: foo: 4 ;CHECK: movs r0, #0 5 ;CHECK-NEXT: bx lr 6 7 ; Note: This test case originally checked, per r167963, for: 8 ; adds 9 ; adc 10 ; bx 11 ; But SDAG now, like InstCombine, can fold everything away. 12 ;rdar://12028498 13 14 define i32 @foo() nounwind ssp { 15 entry: 16 %tmp2 = zext i32 3 to i64 17 br label %bug_block 18 19 bug_block: 20 %tmp410 = and i64 1031, 1647010 21 %tmp411 = and i64 %tmp2, -211 22 %tmp412 = shl i64 %tmp410, %tmp2 23 %tmp413 = shl i64 %tmp411, %tmp2 24 %tmp415 = and i64 %tmp413, 1 25 %tmp420 = xor i64 0, %tmp415 26 %tmp421 = and i64 %tmp412, %tmp415 27 %tmp422 = shl i64 %tmp421, 1 28 br label %finish 29 30 finish: 31 %tmp423 = lshr i64 %tmp422, 32 32 %tmp424 = trunc i64 %tmp423 to i32 33 ret i32 %tmp424 34 } 35 36