130 lines · plain
1# RUN: llc -mtriple arm-- -run-pass=legalizer %s -o - | FileCheck %s2# RUN: llc -mtriple thumb-- -mattr=+v6t2 -run-pass=legalizer %s -o - | FileCheck %s3--- |4 define void @test_select_s32() { ret void }5 define void @test_select_ptr() { ret void }6 7 define void @test_select_s16() { ret void }8 define void @test_select_s8() { ret void }9...10---11name: test_select_s3212# CHECK-LABEL: name: test_select_s3213legalized: false14# CHECK: legalized: true15regBankSelected: false16selected: false17tracksRegLiveness: true18registers:19 - { id: 0, class: _ }20 - { id: 1, class: _ }21 - { id: 2, class: _ }22 - { id: 3, class: _ }23body: |24 bb.0:25 liveins: $r0, $r1, $r226 27 %0(s32) = COPY $r028 %1(s32) = COPY $r129 %2(s1) = G_CONSTANT i1 130 %3(s32) = G_SELECT %2(s1), %0, %131 ; G_SELECT with s32 is legal, so we should find it unchanged in the output32 ; CHECK: {{%[0-9]+}}:_(s32) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}33 $r0 = COPY %3(s32)34 BX_RET 14, $noreg, implicit $r035...36---37name: test_select_ptr38# CHECK-LABEL: name: test_select_ptr39legalized: false40# CHECK: legalized: true41regBankSelected: false42selected: false43tracksRegLiveness: true44registers:45 - { id: 0, class: _ }46 - { id: 1, class: _ }47 - { id: 2, class: _ }48 - { id: 3, class: _ }49body: |50 bb.0:51 liveins: $r0, $r1, $r252 53 %0(p0) = COPY $r054 %1(p0) = COPY $r155 %2(s1) = G_CONSTANT i1 056 %3(p0) = G_SELECT %2(s1), %0, %157 ; G_SELECT with p0 is legal, so we should find it unchanged in the output58 ; CHECK: {{%[0-9]+}}:_(p0) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}59 $r0 = COPY %3(p0)60 BX_RET 14, $noreg, implicit $r061...62---63name: test_select_s1664# CHECK-LABEL: name: test_select_s1665legalized: false66# CHECK: legalized: true67regBankSelected: false68selected: false69tracksRegLiveness: true70registers:71 - { id: 0, class: _ }72 - { id: 1, class: _ }73 - { id: 2, class: _ }74 - { id: 3, class: _ }75 - { id: 4, class: _ }76 - { id: 5, class: _ }77 - { id: 6, class: _ }78body: |79 bb.0:80 liveins: $r0, $r1, $r281 82 %0(s32) = COPY $r083 %1(s16) = G_TRUNC %0(s32)84 %2(s32) = COPY $r185 %3(s16) = G_TRUNC %2(s32)86 %4(s1) = G_CONSTANT i1 187 %5(s16) = G_SELECT %4(s1), %1, %388 ; G_SELECT with s16 should extend89 ; CHECK-NOT: {{%[0-9]+}}:_(s16) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}90 ; CHECK: {{%[0-9]+}}:_(s32) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}91 ; CHECK-NOT: {{%[0-9]+}}:_(s16) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}92 %6(s32) = G_SEXT %5(s16)93 $r0 = COPY %6(s32)94 BX_RET 14, $noreg, implicit $r095...96---97name: test_select_s898# CHECK-LABEL: name: test_select_s899legalized: false100# CHECK: legalized: true101regBankSelected: false102selected: false103tracksRegLiveness: true104registers:105 - { id: 0, class: _ }106 - { id: 1, class: _ }107 - { id: 2, class: _ }108 - { id: 3, class: _ }109 - { id: 4, class: _ }110 - { id: 5, class: _ }111 - { id: 6, class: _ }112body: |113 bb.0:114 liveins: $r0, $r1, $r2115 116 %0(s32) = COPY $r0117 %1(s8) = G_TRUNC %0(s32)118 %2(s32) = COPY $r1119 %3(s8) = G_TRUNC %2(s32)120 %4(s1) = G_CONSTANT i1 1121 %5(s8) = G_SELECT %4(s1), %1, %3122 ; G_SELECT with s8 should extend123 ; CHECK-NOT: {{%[0-9]+}}:_(s8) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}124 ; CHECK: {{%[0-9]+}}:_(s32) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}125 ; CHECK-NOT: {{%[0-9]+}}:_(s8) = G_SELECT {{%[0-9]+}}(s1), {{%[0-9]+}}, {{%[0-9]+}}126 %6(s32) = G_SEXT %5(s8)127 $r0 = COPY %6(s32)128 BX_RET 14, $noreg, implicit $r0129...130