1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=thumbv8 %s -o - | FileCheck %s 3*9880d681SAndroid Build Coastguard Worker; PR11107 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine i32 @test(i32 %a, i32 %b) { 6*9880d681SAndroid Build Coastguard Workerentry: 7*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp slt i32 %a, 0 8*9880d681SAndroid Build Coastguard Worker %sub1 = sub nsw i32 0, %a 9*9880d681SAndroid Build Coastguard Worker %abs1 = select i1 %cmp1, i32 %sub1, i32 %a 10*9880d681SAndroid Build Coastguard Worker %cmp2 = icmp slt i32 %b, 0 11*9880d681SAndroid Build Coastguard Worker %sub2 = sub nsw i32 0, %b 12*9880d681SAndroid Build Coastguard Worker %abs2 = select i1 %cmp2, i32 %sub2, i32 %b 13*9880d681SAndroid Build Coastguard Worker %add = add nsw i32 %abs1, %abs2 14*9880d681SAndroid Build Coastguard Worker ret i32 %add 15*9880d681SAndroid Build Coastguard Worker} 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker; CHECK: cmp 18*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: it mi 19*9880d681SAndroid Build Coastguard Worker; We shouldn't need to check for the extra 's' here; tRSB should be printed as 20*9880d681SAndroid Build Coastguard Worker; "rsb" inside an IT block, not "rsbs". 21*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: rsb{{s?}}mi 22*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmp 23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: it mi 24*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: rsb{{s?}}mi 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker 27