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 14define i32 @foo() nounwind ssp { 15entry: 16 %tmp2 = zext i32 3 to i64 17 br label %bug_block 18 19bug_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 30finish: 31 %tmp423 = lshr i64 %tmp422, 32 32 %tmp424 = trunc i64 %tmp423 to i32 33 ret i32 %tmp424 34} 35 36