brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.8 KiB · cc3cf5d Raw
246 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer %s -o - | FileCheck %s3 4---5name: test_fpext_f16_to_f326body: |7  bb.0:8    liveins: $vgpr09 10    ; CHECK-LABEL: name: test_fpext_f16_to_f3211    ; CHECK: liveins: $vgpr012    ; CHECK-NEXT: {{  $}}13    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr014    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)15    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT [[TRUNC]](s16)16    ; CHECK-NEXT: $vgpr0 = COPY [[FPEXT]](s32)17    %0:_(s32) = COPY $vgpr018    %1:_(s16) = G_TRUNC %019    %2:_(s32) = G_FPEXT %120    $vgpr0 = COPY %221...22 23---24name: test_fpext_v2f16_to_v2f3225body: |26  bb.0:27    liveins: $vgpr028 29    ; CHECK-LABEL: name: test_fpext_v2f16_to_v2f3230    ; CHECK: liveins: $vgpr031    ; CHECK-NEXT: {{  $}}32    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr033    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)34    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST]](s32)35    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1636    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)37    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s32)38    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = nnan G_FPEXT [[TRUNC]](s16)39    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(s32) = nnan G_FPEXT [[TRUNC1]](s16)40    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[FPEXT]](s32), [[FPEXT1]](s32)41    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)42    %0:_(<2 x s16>) = COPY $vgpr043    %1:_(<2 x s32>) = nnan G_FPEXT %044    $vgpr0_vgpr1 = COPY %145...46 47---48name: test_fpext_v2f16_to_v2f32_w_flags49body: |50  bb.0:51    liveins: $vgpr052 53    ; CHECK-LABEL: name: test_fpext_v2f16_to_v2f32_w_flags54    ; CHECK: liveins: $vgpr055    ; CHECK-NEXT: {{  $}}56    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr057    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)58    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST]](s32)59    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1660    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)61    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s32)62    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = nnan G_FPEXT [[TRUNC]](s16)63    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(s32) = nnan G_FPEXT [[TRUNC1]](s16)64    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[FPEXT]](s32), [[FPEXT1]](s32)65    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)66    %0:_(<2 x s16>) = COPY $vgpr067    %1:_(<2 x s32>) = nnan G_FPEXT %068    $vgpr0_vgpr1 = COPY %169...70 71---72name: test_fpext_v3f16_to_v3f3273body: |74  bb.0:75    liveins: $vgpr0_vgpr1_vgpr276    ; CHECK-LABEL: name: test_fpext_v3f16_to_v3f3277    ; CHECK: liveins: $vgpr0_vgpr1_vgpr278    ; CHECK-NEXT: {{  $}}79    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr280    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s16>), [[UV1:%[0-9]+]]:_(<2 x s16>), [[UV2:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<6 x s16>)81    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[UV]](<2 x s16>)82    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST]](s32)83    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1684    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)85    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s32)86    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(s32) = G_BITCAST [[UV1]](<2 x s16>)87    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST1]](s32)88    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT [[TRUNC]](s16)89    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(s32) = G_FPEXT [[TRUNC1]](s16)90    ; CHECK-NEXT: [[FPEXT2:%[0-9]+]]:_(s32) = G_FPEXT [[TRUNC2]](s16)91    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[FPEXT]](s32), [[FPEXT1]](s32), [[FPEXT2]](s32)92    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)93    %0:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr294    %1:_(<3 x s16>), %2:_(<3 x s16>) = G_UNMERGE_VALUES %095    %3:_(<3 x s32>) = G_FPEXT %196    $vgpr0_vgpr1_vgpr2 = COPY %397...98 99---100name: test_fpext_v4f16_to_v4f32101body: |102  bb.0:103    liveins: $vgpr0104 105    ; CHECK-LABEL: name: test_fpext_v4f16_to_v4f32106    ; CHECK: liveins: $vgpr0107    ; CHECK-NEXT: {{  $}}108    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF109    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT [[DEF]](s16)110    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(s32) = G_FPEXT [[DEF]](s16)111    ; CHECK-NEXT: [[FPEXT2:%[0-9]+]]:_(s32) = G_FPEXT [[DEF]](s16)112    ; CHECK-NEXT: [[FPEXT3:%[0-9]+]]:_(s32) = G_FPEXT [[DEF]](s16)113    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[FPEXT]](s32), [[FPEXT1]](s32), [[FPEXT2]](s32), [[FPEXT3]](s32)114    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)115    %0:_(<4 x s16>) = G_IMPLICIT_DEF116    %1:_(<4 x s32>) = G_FPEXT %0117    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1118...119 120---121name: test_fpext_f32_to_f64122body: |123  bb.0:124    liveins: $vgpr0125 126    ; CHECK-LABEL: name: test_fpext_f32_to_f64127    ; CHECK: liveins: $vgpr0128    ; CHECK-NEXT: {{  $}}129    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0130    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s64) = G_FPEXT [[COPY]](s32)131    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FPEXT]](s64)132    %0:_(s32) = COPY $vgpr0133    %1:_(s64) = G_FPEXT %0134    $vgpr0_vgpr1 = COPY %1135...136 137---138name: test_fpext_v2f32_to_v2f64139body: |140  bb.0:141    liveins: $vgpr0_vgpr1142 143    ; CHECK-LABEL: name: test_fpext_v2f32_to_v2f64144    ; CHECK: liveins: $vgpr0_vgpr1145    ; CHECK-NEXT: {{  $}}146    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1147    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)148    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s64) = G_FPEXT [[UV]](s32)149    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(s64) = G_FPEXT [[UV1]](s32)150    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[FPEXT]](s64), [[FPEXT1]](s64)151    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)152    %0:_(<2 x s32>) = COPY $vgpr0_vgpr1153    %1:_(<2 x s64>) = G_FPEXT %0154    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1155...156 157---158name: test_fpext_v3f32_to_v3f64159body: |160  bb.0:161    liveins: $vgpr0_vgpr1_vgpr2162 163    ; CHECK-LABEL: name: test_fpext_v3f32_to_v3f64164    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2165    ; CHECK-NEXT: {{  $}}166    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2167    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)168    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s64) = G_FPEXT [[UV]](s32)169    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(s64) = G_FPEXT [[UV1]](s32)170    ; CHECK-NEXT: [[FPEXT2:%[0-9]+]]:_(s64) = G_FPEXT [[UV2]](s32)171    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s64>) = G_BUILD_VECTOR [[FPEXT]](s64), [[FPEXT1]](s64), [[FPEXT2]](s64)172    ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<3 x s64>)173    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2174    %1:_(<3 x s64>) = G_FPEXT %0175    S_NOP 0, implicit %1176 177...178 179---180name: test_fpext_v4f32_to_v4f64181body: |182  bb.0:183    liveins: $vgpr0_vgpr1_vgpr2_vgpr3184 185    ; CHECK-LABEL: name: test_fpext_v4f32_to_v4f64186    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3187    ; CHECK-NEXT: {{  $}}188    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3189    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<4 x s32>)190    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s64) = G_FPEXT [[UV]](s32)191    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(s64) = G_FPEXT [[UV1]](s32)192    ; CHECK-NEXT: [[FPEXT2:%[0-9]+]]:_(s64) = G_FPEXT [[UV2]](s32)193    ; CHECK-NEXT: [[FPEXT3:%[0-9]+]]:_(s64) = G_FPEXT [[UV3]](s32)194    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s64>) = G_BUILD_VECTOR [[FPEXT]](s64), [[FPEXT1]](s64), [[FPEXT2]](s64), [[FPEXT3]](s64)195    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<4 x s64>)196    %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3197    %1:_(<4 x s64>) = G_FPEXT %0198    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1199...200 201---202name: test_fpext_f16_to_f64203body: |204  bb.0:205    liveins: $vgpr0206 207    ; CHECK-LABEL: name: test_fpext_f16_to_f64208    ; CHECK: liveins: $vgpr0209    ; CHECK-NEXT: {{  $}}210    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0211    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)212    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT [[TRUNC]](s16)213    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(s64) = G_FPEXT [[FPEXT]](s32)214    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FPEXT1]](s64)215    %0:_(s32) = COPY $vgpr0216    %1:_(s16) = G_TRUNC %0217    %2:_(s64) = G_FPEXT %1218    $vgpr0_vgpr1 = COPY %2219...220 221---222name: test_fpext_v2f16_to_v2f64223body: |224  bb.0:225    liveins: $vgpr0226 227    ; CHECK-LABEL: name: test_fpext_v2f16_to_v2f64228    ; CHECK: liveins: $vgpr0229    ; CHECK-NEXT: {{  $}}230    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0231    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)232    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST]](s32)233    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16234    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)235    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s32)236    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = nnan G_FPEXT [[TRUNC]](s16)237    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(s64) = G_FPEXT [[FPEXT]](s32)238    ; CHECK-NEXT: [[FPEXT2:%[0-9]+]]:_(s32) = nnan G_FPEXT [[TRUNC1]](s16)239    ; CHECK-NEXT: [[FPEXT3:%[0-9]+]]:_(s64) = G_FPEXT [[FPEXT2]](s32)240    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[FPEXT1]](s64), [[FPEXT3]](s64)241    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)242    %0:_(<2 x s16>) = COPY $vgpr0243    %1:_(<2 x s64>) = nnan G_FPEXT %0244    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1245...246