brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 868ca73 Raw
94 lines · plain
1; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s2 3; These tests could be improved by 'movs r0, #0' being rematerialized below the4; test as 'mov.w r0, #0'.5 6define i32 @f1(i32 %a, i32 %b) {7    %nb = sub i32 0, %b8    %tmp = icmp ne i32 %a, %nb9    %ret = select i1 %tmp, i32 42, i32 2410    ret i32 %ret11}12; CHECK-LABEL: f1:13; CHECK: 	cmn	{{.*}}, r114 15define i32 @f2(i32 %a, i32 %b) {16    %nb = sub i32 0, %b17    %tmp = icmp ne i32 %nb, %a18    %ret = select i1 %tmp, i32 42, i32 2419    ret i32 %ret20}21; CHECK-LABEL: f2:22; CHECK: 	cmn	{{.*}}, r123 24define i32 @f3(i32 %a, i32 %b) {25    %nb = sub i32 0, %b26    %tmp = icmp eq i32 %a, %nb27    %ret = select i1 %tmp, i32 42, i32 2428    ret i32 %ret29}30; CHECK-LABEL: f3:31; CHECK: 	cmn	{{.*}}, r132 33define i32 @f4(i32 %a, i32 %b) {34    %nb = sub i32 0, %b35    %tmp = icmp eq i32 %nb, %a36    %ret = select i1 %tmp, i32 42, i32 2437    ret i32 %ret38}39; CHECK-LABEL: f4:40; CHECK: 	cmn	{{.*}}, r141 42define i32 @f5(i32 %a, i32 %b) {43    %tmp = shl i32 %b, 544    %nb = sub i32 0, %tmp45    %tmp1 = icmp eq i32 %nb, %a46    %ret = select i1 %tmp1, i32 42, i32 2447    ret i32 %ret48}49; CHECK-LABEL: f5:50; CHECK: 	cmn.w	{{.*}}, r1, lsl #551 52define i32 @f6(i32 %a, i32 %b) {53    %tmp = lshr i32 %b, 654    %nb = sub i32 0, %tmp55    %tmp1 = icmp ne i32 %nb, %a56    %ret = select i1 %tmp1, i32 42, i32 2457    ret i32 %ret58}59; CHECK-LABEL: f6:60; CHECK: 	cmn.w	{{.*}}, r1, lsr #661 62define i32 @f7(i32 %a, i32 %b) {63    %tmp = ashr i32 %b, 764    %nb = sub i32 0, %tmp65    %tmp1 = icmp eq i32 %a, %nb66    %ret = select i1 %tmp1, i32 42, i32 2467    ret i32 %ret68}69; CHECK-LABEL: f7:70; CHECK: 	cmn.w	{{.*}}, r1, asr #771 72define i32 @f8(i32 %a, i32 %b) {73    %l8 = shl i32 %a, 2474    %r8 = lshr i32 %a, 875    %tmp = or i32 %l8, %r876    %nb = sub i32 0, %tmp77    %tmp1 = icmp ne i32 %a, %nb78    %ret = select i1 %tmp1, i32 42, i32 2479    ret i32 %ret80}81; CHECK-LABEL: f8:82; CHECK: 	cmn.w	{{.*}}, {{.*}}, ror #883 84 85define void @f9(i32 %a, i32 %b) nounwind optsize {86  tail call void asm sideeffect "cmn.w     r0, r1", ""() nounwind, !srcloc !087  ret void88}89 90!0 = !{i32 81}91 92; CHECK-LABEL: f9:93; CHECK: 	cmn.w	r0, r194