brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · d31dec6 Raw
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