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