brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.8 KiB · df7fc56 Raw
210 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s3 4---5name: trunc_s32_shl_s64_56legalized:       true7tracksRegLiveness: true8body:             |9  bb.0:10    liveins: $vgpr0_vgpr111 12    ; CHECK-LABEL: name: trunc_s32_shl_s64_513    ; CHECK: liveins: $vgpr0_vgpr114    ; CHECK-NEXT: {{  $}}15    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr116    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 117    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)18    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[TRUNC]], [[C]](s32)19    ; CHECK-NEXT: $vgpr0 = COPY [[SHL]](s32)20    %0:_(s64) = COPY $vgpr0_vgpr121    %1:_(s32) = G_CONSTANT i32 122    %2:_(s64) = G_SHL %0:_, %123    %3:_(s32) = G_TRUNC %224    $vgpr0 = COPY %325...26 27---28name: trunc_s16_shl_s32_529legalized:       true30tracksRegLiveness: true31body:             |32  bb.0:33    liveins: $vgpr034 35    ; CHECK-LABEL: name: trunc_s16_shl_s32_536    ; CHECK: liveins: $vgpr037    ; CHECK-NEXT: {{  $}}38    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr039    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 140    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)41    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)42    ; CHECK-NEXT: S_ENDPGM 0, implicit [[TRUNC]](s16)43    %0:_(s32) = COPY $vgpr044    %1:_(s32) = G_CONSTANT i32 145    %2:_(s32) = G_SHL %0:_, %146    %3:_(s16) = G_TRUNC %247    S_ENDPGM 0, implicit %348 49...50 51---52name: trunc_s16_shl_s64_553legalized:       true54tracksRegLiveness: true55body:             |56  bb.0:57    liveins: $vgpr0_vgpr158 59    ; CHECK-LABEL: name: trunc_s16_shl_s64_560    ; CHECK: liveins: $vgpr0_vgpr161    ; CHECK-NEXT: {{  $}}62    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr163    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 164    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s32)65    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s64)66    ; CHECK-NEXT: S_ENDPGM 0, implicit [[TRUNC]](s16)67    %0:_(s64) = COPY $vgpr0_vgpr168    %1:_(s32) = G_CONSTANT i32 169    %2:_(s64) = G_SHL %0:_, %170    %3:_(s16) = G_TRUNC %271    S_ENDPGM 0, implicit %372 73...74 75---76name:            s16_trunc_s64_lshr_1677tracksRegLiveness: true78body:             |79  bb.0:80    liveins: $vgpr081    ; CHECK-LABEL: name: s16_trunc_s64_lshr_1682    ; CHECK: liveins: $vgpr083    ; CHECK-NEXT: {{  $}}84    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr085    ; CHECK-NEXT: %amt:_(s32) = G_CONSTANT i32 1686    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], %amt(s32)87    ; CHECK-NEXT: %trunc:_(s16) = G_TRUNC [[LSHR]](s32)88    ; CHECK-NEXT: %foo:_(s16) = G_CONSTANT i16 5589    ; CHECK-NEXT: %keep:_(s32) = G_MERGE_VALUES %trunc(s16), %foo(s16)90    ; CHECK-NEXT: $vgpr0 = COPY %keep(s32)91    %0:_(s32) = COPY $vgpr092    %src:_(s64) = G_ZEXT %093    %amt:_(s32) = G_CONSTANT i32 1694    %shift:_(s64) = G_LSHR %src, %amt95    %trunc:_(s16) = G_TRUNC %shift96    %foo:_(s16) = G_CONSTANT i16 5597    %keep:_(s32) = G_MERGE_VALUES %trunc, %foo98    $vgpr0 = COPY %keep99...100 101---102name:            s16_trunc_s64_ashr_16103tracksRegLiveness: true104body:             |105  bb.0:106    liveins: $vgpr0107    ; CHECK-LABEL: name: s16_trunc_s64_ashr_16108    ; CHECK: liveins: $vgpr0109    ; CHECK-NEXT: {{  $}}110    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0111    ; CHECK-NEXT: %amt:_(s32) = G_CONSTANT i32 16112    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY]], %amt(s32)113    ; CHECK-NEXT: %trunc:_(s16) = G_TRUNC [[ASHR]](s32)114    ; CHECK-NEXT: %foo:_(s16) = G_CONSTANT i16 55115    ; CHECK-NEXT: %keep:_(s32) = G_MERGE_VALUES %trunc(s16), %foo(s16)116    ; CHECK-NEXT: $vgpr0 = COPY %keep(s32)117    %0:_(s32) = COPY $vgpr0118    %src:_(s64) = G_ZEXT %0119    %amt:_(s32) = G_CONSTANT i32 16120    %shift:_(s64) = G_ASHR %src, %amt121    %trunc:_(s16) = G_TRUNC %shift122    %foo:_(s16) = G_CONSTANT i16 55123    %keep:_(s32) = G_MERGE_VALUES %trunc, %foo124    $vgpr0 = COPY %keep125...126 127---128name:            s16_trunc_s64_lshr_17_nofold129tracksRegLiveness: true130body:             |131  bb.0:132    liveins: $vgpr0133    ; CHECK-LABEL: name: s16_trunc_s64_lshr_17_nofold134    ; CHECK: liveins: $vgpr0135    ; CHECK-NEXT: {{  $}}136    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0137    ; CHECK-NEXT: %src:_(s64) = G_ZEXT [[COPY]](s32)138    ; CHECK-NEXT: %amt:_(s32) = G_CONSTANT i32 17139    ; CHECK-NEXT: %shift:_(s64) = G_LSHR %src, %amt(s32)140    ; CHECK-NEXT: %trunc:_(s16) = G_TRUNC %shift(s64)141    ; CHECK-NEXT: %foo:_(s16) = G_CONSTANT i16 55142    ; CHECK-NEXT: %keep:_(s32) = G_MERGE_VALUES %trunc(s16), %foo(s16)143    ; CHECK-NEXT: $vgpr0 = COPY %keep(s32)144    %0:_(s32) = COPY $vgpr0145    %src:_(s64) = G_ZEXT %0146    %amt:_(s32) = G_CONSTANT i32 17147    %shift:_(s64) = G_LSHR %src, %amt148    %trunc:_(s16) = G_TRUNC %shift149    %foo:_(s16) = G_CONSTANT i16 55150    %keep:_(s32) = G_MERGE_VALUES %trunc, %foo151    $vgpr0 = COPY %keep152...153 154---155name:            s26_trunc_s64_lshr_6156tracksRegLiveness: true157body:             |158  bb.0:159    liveins: $vgpr0160    ; CHECK-LABEL: name: s26_trunc_s64_lshr_6161    ; CHECK: liveins: $vgpr0162    ; CHECK-NEXT: {{  $}}163    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0164    ; CHECK-NEXT: %amt:_(s32) = G_CONSTANT i32 6165    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], %amt(s32)166    ; CHECK-NEXT: %trunc:_(s26) = G_TRUNC [[LSHR]](s32)167    ; CHECK-NEXT: %foo:_(s26) = G_CONSTANT i26 55168    ; CHECK-NEXT: %keep0:_(s26) = G_ADD %trunc, %foo169    ; CHECK-NEXT: %keep1:_(s32) = G_ANYEXT %keep0(s26)170    ; CHECK-NEXT: $vgpr0 = COPY %keep1(s32)171    %0:_(s32) = COPY $vgpr0172    %src:_(s64) = G_ZEXT %0173    %amt:_(s32) = G_CONSTANT i32 6174    %shift:_(s64) = G_LSHR %src, %amt175    %trunc:_(s26) = G_TRUNC %shift176    %foo:_(s26) = G_CONSTANT i26 55177    %keep0:_(s26) = G_ADD %trunc, %foo178    %keep1:_(s32) = G_ANYEXT %keep0179    $vgpr0 = COPY %keep1180...181 182---183name:            s26_trunc_s64_lshr_7_nofold184tracksRegLiveness: true185body:             |186  bb.0:187    liveins: $vgpr0188    ; CHECK-LABEL: name: s26_trunc_s64_lshr_7_nofold189    ; CHECK: liveins: $vgpr0190    ; CHECK-NEXT: {{  $}}191    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0192    ; CHECK-NEXT: %src:_(s64) = G_ZEXT [[COPY]](s32)193    ; CHECK-NEXT: %amt:_(s32) = G_CONSTANT i32 7194    ; CHECK-NEXT: %shift:_(s64) = G_LSHR %src, %amt(s32)195    ; CHECK-NEXT: %trunc:_(s26) = G_TRUNC %shift(s64)196    ; CHECK-NEXT: %foo:_(s26) = G_CONSTANT i26 55197    ; CHECK-NEXT: %keep0:_(s26) = G_ADD %trunc, %foo198    ; CHECK-NEXT: %keep1:_(s32) = G_ANYEXT %keep0(s26)199    ; CHECK-NEXT: $vgpr0 = COPY %keep1(s32)200    %0:_(s32) = COPY $vgpr0201    %src:_(s64) = G_ZEXT %0202    %amt:_(s32) = G_CONSTANT i32 7203    %shift:_(s64) = G_LSHR %src, %amt204    %trunc:_(s26) = G_TRUNC %shift205    %foo:_(s26) = G_CONSTANT i26 55206    %keep0:_(s26) = G_ADD %trunc, %foo207    %keep1:_(s32) = G_ANYEXT %keep0208    $vgpr0 = COPY %keep1209...210