128 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s3# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s4# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s5 6---7name: constant_fold_ashr_s32_s328legalized: true9tracksRegLiveness: true10body: |11 bb.0:12 ; CHECK-LABEL: name: constant_fold_ashr_s32_s3213 ; CHECK: %shift:_(s32) = G_CONSTANT i32 -48225414 ; CHECK-NEXT: $vgpr0 = COPY %shift(s32)15 %val:_(s32) = G_CONSTANT i32 -12345678916 %shift_amt:_(s32) = G_CONSTANT i32 817 %shift:_(s32) = G_ASHR %val, %shift_amt18 $vgpr0 = COPY %shift19 20...21 22---23name: constant_fold_ashr_s16_s1624legalized: true25tracksRegLiveness: true26body: |27 bb.0:28 ; CHECK-LABEL: name: constant_fold_ashr_s16_s1629 ; CHECK: %ext:_(s32) = G_CONSTANT i32 6476430 ; CHECK-NEXT: $vgpr0 = COPY %ext(s32)31 %val:_(s16) = G_CONSTANT i16 -1234532 %shift_amt:_(s16) = G_CONSTANT i16 433 %shift:_(s16) = G_ASHR %val, %shift_amt34 %ext:_(s32) = G_ANYEXT %shift35 $vgpr0 = COPY %ext36 37...38 39---40name: constant_fold_ashr_s64_s3241legalized: true42tracksRegLiveness: true43body: |44 bb.0:45 ; CHECK-LABEL: name: constant_fold_ashr_s64_s3246 ; CHECK: %shift:_(s64) = G_CONSTANT i64 -48225447 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY %shift(s64)48 %val:_(s64) = G_CONSTANT i64 -12345678949 %shift_amt:_(s32) = G_CONSTANT i32 850 %shift:_(s64) = G_ASHR %val, %shift_amt51 $vgpr0_vgpr1 = COPY %shift52 53...54 55---56name: constant_fold_ashr_v2s16_v2s1657legalized: true58tracksRegLiveness: true59body: |60 bb.0:61 ; CHECK-LABEL: name: constant_fold_ashr_v2s16_v2s1662 ; CHECK: %val0:_(s16) = G_CONSTANT i16 123463 ; CHECK-NEXT: %val1:_(s16) = G_CONSTANT i16 -567864 ; CHECK-NEXT: %val:_(<2 x s16>) = G_BUILD_VECTOR %val0(s16), %val1(s16)65 ; CHECK-NEXT: %shift_amt_elt:_(s16) = G_CONSTANT i16 866 ; CHECK-NEXT: %shift_amt:_(<2 x s16>) = G_BUILD_VECTOR %shift_amt_elt(s16), %shift_amt_elt(s16)67 ; CHECK-NEXT: %shift:_(<2 x s16>) = G_ASHR %val, %shift_amt(<2 x s16>)68 ; CHECK-NEXT: $vgpr0 = COPY %shift(<2 x s16>)69 %val0:_(s16) = G_CONSTANT i16 123470 %val1:_(s16) = G_CONSTANT i16 -567871 %val:_(<2 x s16>) = G_BUILD_VECTOR %val0, %val172 %shift_amt_elt:_(s16) = G_CONSTANT i16 873 %shift_amt:_(<2 x s16>) = G_BUILD_VECTOR %shift_amt_elt, %shift_amt_elt74 %shift:_(<2 x s16>) = G_ASHR %val, %shift_amt75 $vgpr0 = COPY %shift76 77...78 79---80name: constant_fold_ashr_v2s16_v2s16_undef_amt_elt81legalized: true82tracksRegLiveness: true83body: |84 bb.0:85 ; CHECK-LABEL: name: constant_fold_ashr_v2s16_v2s16_undef_amt_elt86 ; CHECK: %val0:_(s16) = G_CONSTANT i16 123487 ; CHECK-NEXT: %val1:_(s16) = G_CONSTANT i16 -567888 ; CHECK-NEXT: %val:_(<2 x s16>) = G_BUILD_VECTOR %val0(s16), %val1(s16)89 ; CHECK-NEXT: %shift_amt_elt:_(s16) = G_CONSTANT i16 890 ; CHECK-NEXT: %undef:_(s16) = G_IMPLICIT_DEF91 ; CHECK-NEXT: %shift_amt:_(<2 x s16>) = G_BUILD_VECTOR %shift_amt_elt(s16), %undef(s16)92 ; CHECK-NEXT: %shift:_(<2 x s16>) = G_ASHR %val, %shift_amt(<2 x s16>)93 ; CHECK-NEXT: $vgpr0 = COPY %shift(<2 x s16>)94 %val0:_(s16) = G_CONSTANT i16 123495 %val1:_(s16) = G_CONSTANT i16 -567896 %val:_(<2 x s16>) = G_BUILD_VECTOR %val0, %val197 %shift_amt_elt:_(s16) = G_CONSTANT i16 898 %undef:_(s16) = G_IMPLICIT_DEF99 %shift_amt:_(<2 x s16>) = G_BUILD_VECTOR %shift_amt_elt, %undef100 %shift:_(<2 x s16>) = G_ASHR %val, %shift_amt101 $vgpr0 = COPY %shift102 103...104 105---106name: constant_fold_ashr_v2s16_v2s16_undef_val_elt107legalized: true108tracksRegLiveness: true109body: |110 bb.0:111 ; CHECK-LABEL: name: constant_fold_ashr_v2s16_v2s16_undef_val_elt112 ; CHECK: %val0:_(s16) = G_CONSTANT i16 -1234113 ; CHECK-NEXT: %undef:_(s16) = G_IMPLICIT_DEF114 ; CHECK-NEXT: %val:_(<2 x s16>) = G_BUILD_VECTOR %val0(s16), %undef(s16)115 ; CHECK-NEXT: %shift_amt_elt:_(s16) = G_CONSTANT i16 8116 ; CHECK-NEXT: %shift_amt:_(<2 x s16>) = G_BUILD_VECTOR %shift_amt_elt(s16), %shift_amt_elt(s16)117 ; CHECK-NEXT: %shift:_(<2 x s16>) = G_ASHR %val, %shift_amt(<2 x s16>)118 ; CHECK-NEXT: $vgpr0 = COPY %shift(<2 x s16>)119 %val0:_(s16) = G_CONSTANT i16 -1234120 %undef:_(s16) = G_IMPLICIT_DEF121 %val:_(<2 x s16>) = G_BUILD_VECTOR %val0, %undef122 %shift_amt_elt:_(s16) = G_CONSTANT i16 8123 %shift_amt:_(<2 x s16>) = G_BUILD_VECTOR %shift_amt_elt, %shift_amt_elt124 %shift:_(<2 x s16>) = G_ASHR %val, %shift_amt125 $vgpr0 = COPY %shift126 127...128