brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.5 KiB · ee8dbf1 Raw
221 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=hawaii -run-pass=regbankselect -regbankselect-fast -verify-machineinstrs -o - %s | FileCheck -check-prefixes=CHECK,FAST %s3# RUN: llc -mtriple=amdgcn -mcpu=hawaii -run-pass=regbankselect -regbankselect-greedy -verify-machineinstrs -o - %s | FileCheck -check-prefixes=CHECK,GREEDY %s4 5---6name: test_implicit_def_s32_vgpr_use7legalized:       true8body: |9  bb.0:10    liveins: $vgpr0_vgpr111 12    ; CHECK-LABEL: name: test_implicit_def_s32_vgpr_use13    ; CHECK: liveins: $vgpr0_vgpr114    ; CHECK-NEXT: {{  $}}15    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr116    ; CHECK-NEXT: [[DEF:%[0-9]+]]:sgpr(s32) = G_IMPLICIT_DEF17    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY [[DEF]](s32)18    ; CHECK-NEXT: G_STORE [[COPY1]](s32), [[COPY]](p1) :: (store (s32), addrspace 1)19    %0:_(p1) = COPY $vgpr0_vgpr120    %1:_(s32) = G_IMPLICIT_DEF21    G_STORE %1, %0 :: (store (s32), addrspace 1)22 23...24 25---26name: test_implicit_def_s32_sgpr_use27legalized:       true28body: |29  bb.0:30    ; CHECK-LABEL: name: test_implicit_def_s32_sgpr_use31    ; CHECK: [[DEF:%[0-9]+]]:sgpr(s32) = G_IMPLICIT_DEF32    ; CHECK-NEXT: G_INTRINSIC_W_SIDE_EFFECTS intrinsic(@llvm.amdgcn.s.sendmsg), 0, [[DEF]](s32)33    %0:_(s32) = G_IMPLICIT_DEF34    G_INTRINSIC_W_SIDE_EFFECTS intrinsic(@llvm.amdgcn.s.sendmsg), 0, %035 36...37 38---39name: test_implicit_def_s64_vgpr_use40legalized:       true41body: |42  bb.0:43    liveins: $vgpr0_vgpr144 45    ; CHECK-LABEL: name: test_implicit_def_s64_vgpr_use46    ; CHECK: liveins: $vgpr0_vgpr147    ; CHECK-NEXT: {{  $}}48    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr149    ; CHECK-NEXT: [[DEF:%[0-9]+]]:sgpr(s64) = G_IMPLICIT_DEF50    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY [[DEF]](s64)51    ; CHECK-NEXT: G_STORE [[COPY1]](s64), [[COPY]](p1) :: (store (s64), addrspace 1)52    %0:_(p1) = COPY $vgpr0_vgpr153    %1:_(s64) = G_IMPLICIT_DEF54    G_STORE %1, %0 :: (store (s64), addrspace 1)55 56...57 58---59name: test_implicit_def_v3s32_vgpr_use60legalized:       true61body: |62  bb.0:63    liveins: $vgpr0_vgpr164 65    ; CHECK-LABEL: name: test_implicit_def_v3s32_vgpr_use66    ; CHECK: liveins: $vgpr0_vgpr167    ; CHECK-NEXT: {{  $}}68    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr169    ; CHECK-NEXT: [[DEF:%[0-9]+]]:sgpr(<3 x s32>) = G_IMPLICIT_DEF70    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(<3 x s32>) = COPY [[DEF]](<3 x s32>)71    ; CHECK-NEXT: G_STORE [[COPY1]](<3 x s32>), [[COPY]](p1) :: (store (<3 x s32>), align 4, addrspace 1)72    %0:_(p1) = COPY $vgpr0_vgpr173    %1:_(<3 x s32>) = G_IMPLICIT_DEF74    G_STORE %1, %0 :: (store (<3 x s32>), addrspace 1, align 4)75 76...77 78---79name: test_implicit_def_v4s32_vgpr_use80legalized:       true81body: |82  bb.0:83    liveins: $vgpr0_vgpr184 85    ; CHECK-LABEL: name: test_implicit_def_v4s32_vgpr_use86    ; CHECK: liveins: $vgpr0_vgpr187    ; CHECK-NEXT: {{  $}}88    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr189    ; CHECK-NEXT: [[DEF:%[0-9]+]]:sgpr(<4 x s32>) = G_IMPLICIT_DEF90    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(<4 x s32>) = COPY [[DEF]](<4 x s32>)91    ; CHECK-NEXT: G_STORE [[COPY1]](<4 x s32>), [[COPY]](p1) :: (store (<4 x s32>), align 4, addrspace 1)92    %0:_(p1) = COPY $vgpr0_vgpr193    %1:_(<4 x s32>) = G_IMPLICIT_DEF94    G_STORE %1, %0 :: (store (<4 x s32>), addrspace 1, align 4)95 96...97 98---99name: test_implicit_def_s64_sgpr_use100legalized:       true101body: |102  bb.0:103    ; CHECK-LABEL: name: test_implicit_def_s64_sgpr_use104    ; CHECK: [[DEF:%[0-9]+]]:sgpr(s64) = G_IMPLICIT_DEF105    ; CHECK-NEXT: $sgpr8_sgpr9 = COPY [[DEF]](s64)106    %0:_(s64) = G_IMPLICIT_DEF107    $sgpr8_sgpr9 = COPY %0108 109...110 111---112name: test_implicit_def_s128_sgpr_use113legalized:       true114body: |115  bb.0:116    ; CHECK-LABEL: name: test_implicit_def_s128_sgpr_use117    ; CHECK: [[DEF:%[0-9]+]]:sgpr(s128) = G_IMPLICIT_DEF118    ; CHECK-NEXT: $sgpr8_sgpr9_sgpr10_sgpr11 = COPY [[DEF]](s128)119    %0:_(s128) = G_IMPLICIT_DEF120    $sgpr8_sgpr9_sgpr10_sgpr11 = COPY %0121 122...123 124---125name: test_implicit_def_s1_sgpr_use126legalized:       true127body: |128  bb.0:129    liveins: $sgpr8, $sgpr9130    ; CHECK-LABEL: name: test_implicit_def_s1_sgpr_use131    ; CHECK: liveins: $sgpr8, $sgpr9132    ; CHECK-NEXT: {{  $}}133    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr8134    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr9135    ; CHECK-NEXT: [[DEF:%[0-9]+]]:sgpr(s32) = G_IMPLICIT_DEF136    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[DEF]](s32)137    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)138    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT]](s32), [[COPY]], [[COPY1]]139    ; CHECK-NEXT: S_ENDPGM 0, implicit [[SELECT]](s32)140    %0:_(s32) = COPY $sgpr8141    %1:_(s32) = COPY $sgpr9142    %2:_(s1) = G_IMPLICIT_DEF143    %3:_(s32) = G_SELECT %2, %0, %1144    S_ENDPGM 0, implicit %3145 146...147 148---149name: test_implicit_def_s1_vcc_use150legalized:       true151body: |152  bb.0:153    liveins: $vgpr0, $vgpr1154    ; CHECK-LABEL: name: test_implicit_def_s1_vcc_use155    ; CHECK: liveins: $vgpr0, $vgpr1156    ; CHECK-NEXT: {{  $}}157    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0158    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1159    ; CHECK-NEXT: [[DEF:%[0-9]+]]:sgpr(s32) = G_IMPLICIT_DEF160    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[DEF]](s32)161    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)162    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY2]](s1), [[COPY]], [[COPY1]]163    ; CHECK-NEXT: S_ENDPGM 0, implicit [[SELECT]](s32)164    %0:_(s32) = COPY $vgpr0165    %1:_(s32) = COPY $vgpr1166    %2:_(s1) = G_IMPLICIT_DEF167    %3:_(s32) = G_SELECT %2, %0, %1168    S_ENDPGM 0, implicit %3169 170...171 172---173name: test_implicit_def_s1_explicit_vcc_use_0174legalized:       true175body: |176  bb.0:177    liveins: $vgpr0, $vgpr1178    ; FAST-LABEL: name: test_implicit_def_s1_explicit_vcc_use_0179    ; FAST: liveins: $vgpr0, $vgpr1180    ; FAST-NEXT: {{  $}}181    ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0182    ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1183    ; FAST-NEXT: [[DEF:%[0-9]+]]:sgpr(s32) = G_IMPLICIT_DEF184    ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[DEF]](s32)185    ; FAST-NEXT: [[COPY2:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)186    ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY2]](s1), [[COPY]], [[COPY1]]187    ; FAST-NEXT: S_ENDPGM 0, implicit [[SELECT]](s32)188    ; GREEDY-LABEL: name: test_implicit_def_s1_explicit_vcc_use_0189    ; GREEDY: liveins: $vgpr0, $vgpr1190    ; GREEDY-NEXT: {{  $}}191    ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0192    ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1193    ; GREEDY-NEXT: [[DEF:%[0-9]+]]:vcc(s1) = G_IMPLICIT_DEF194    ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[DEF]](s1), [[COPY]], [[COPY1]]195    ; GREEDY-NEXT: S_ENDPGM 0, implicit [[SELECT]](s32)196    %0:_(s32) = COPY $vgpr0197    %1:_(s32) = COPY $vgpr1198    %2:vcc(s1) = G_IMPLICIT_DEF199    %3:_(s32) = G_SELECT %2, %0, %1200    S_ENDPGM 0, implicit %3201 202...203 204---205name: test_implicit_def_s1_explicit_vcc_use_1206legalized:       true207body: |208  bb.0:209    ; FAST-LABEL: name: test_implicit_def_s1_explicit_vcc_use_1210    ; FAST: [[DEF:%[0-9]+]]:sgpr(s32) = G_IMPLICIT_DEF211    ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[DEF]](s32)212    ; FAST-NEXT: [[COPY:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)213    ; FAST-NEXT: S_ENDPGM 0, implicit [[COPY]](s1)214    ; GREEDY-LABEL: name: test_implicit_def_s1_explicit_vcc_use_1215    ; GREEDY: [[DEF:%[0-9]+]]:vcc(s1) = G_IMPLICIT_DEF216    ; GREEDY-NEXT: S_ENDPGM 0, implicit [[DEF]](s1)217    %2:vcc(s1) = G_IMPLICIT_DEF218    S_ENDPGM 0, implicit %2219 220...221