1 ; RUN: llc < %s -mtriple=thumbv7-apple-ios | FileCheck %s 2 3 ;CHECK-LABEL: foo: 4 ;CHECK: adds 5 ;CHECK-NEXT: adc 6 ;CHECK-NEXT: bx 7 8 ;rdar://12028498 9 10 define i32 @foo() nounwind ssp { 11 entry: 12 %tmp2 = zext i32 3 to i64 13 br label %bug_block 14 15 bug_block: 16 %tmp410 = and i64 1031, 1647010 17 %tmp411 = and i64 %tmp2, -211 18 %tmp412 = shl i64 %tmp410, %tmp2 19 %tmp413 = shl i64 %tmp411, %tmp2 20 %tmp415 = and i64 %tmp413, 1 21 %tmp420 = xor i64 0, %tmp415 22 %tmp421 = and i64 %tmp412, %tmp415 23 %tmp422 = shl i64 %tmp421, 1 24 br label %finish 25 26 finish: 27 %tmp423 = lshr i64 %tmp422, 32 28 %tmp424 = trunc i64 %tmp423 to i32 29 ret i32 %tmp424 30 } 31 32