brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.2 KiB · 3423af6 Raw
207 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1010 -run-pass=amdgpu-prelegalizer-combiner -verify-machineinstrs %s -o - | FileCheck -check-prefix=GCN %s3 4---5name: zext_trunc_s32_s16_s326tracksRegLiveness: true7body: |8  bb.0:9    liveins: $vgpr010 11    ; GCN-LABEL: name: zext_trunc_s32_s16_s3212    ; GCN: liveins: $vgpr013    ; GCN-NEXT: {{  $}}14    ; GCN-NEXT: %var:_(s32) = COPY $vgpr015    ; GCN-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC %var(s32)16    ; GCN-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 1638317    ; GCN-NEXT: %trunc:_(s16) = G_AND [[TRUNC]], [[C]]18    ; GCN-NEXT: %zext:_(s32) = G_ZEXT %trunc(s16)19    ; GCN-NEXT: $vgpr0 = COPY %zext(s32)20    %var:_(s32) = COPY $vgpr021    %c3FFF:_(s32) = G_CONSTANT i32 1638322    %low_bits:_(s32) = G_AND %var, %c3FFF23    %trunc:_(s16) = G_TRUNC %low_bits(s32)24    %zext:_(s32) = G_ZEXT %trunc(s16)25    $vgpr0 = COPY %zext(s32)26...27 28---29name: zext_trunc_s32_s16_s32_unknown_high_bits30tracksRegLiveness: true31body: |32  bb.0:33    liveins: $vgpr034 35    ; GCN-LABEL: name: zext_trunc_s32_s16_s32_unknown_high_bits36    ; GCN: liveins: $vgpr037    ; GCN-NEXT: {{  $}}38    ; GCN-NEXT: %var:_(s32) = COPY $vgpr039    ; GCN-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC %var(s32)40    ; GCN-NEXT: %zext:_(s32) = G_ZEXT [[TRUNC]](s16)41    ; GCN-NEXT: $vgpr0 = COPY %zext(s32)42    %var:_(s32) = COPY $vgpr043    %cFFFFF:_(s32) = G_CONSTANT i32 104857544    %low_bits:_(s32) = G_AND %var, %cFFFFF45    %trunc:_(s16) = G_TRUNC %low_bits(s32)46    %zext:_(s32) = G_ZEXT %trunc(s16)47    $vgpr0 = COPY %zext(s32)48...49 50---51name: zext_trunc_s64_s16_s3252tracksRegLiveness: true53body: |54  bb.0:55    liveins: $vgpr0_vgpr156 57    ; GCN-LABEL: name: zext_trunc_s64_s16_s3258    ; GCN: liveins: $vgpr0_vgpr159    ; GCN-NEXT: {{  $}}60    ; GCN-NEXT: %var:_(s64) = COPY $vgpr0_vgpr161    ; GCN-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC %var(s64)62    ; GCN-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 1638363    ; GCN-NEXT: %trunc:_(s16) = G_AND [[TRUNC]], [[C]]64    ; GCN-NEXT: %zext:_(s32) = G_ZEXT %trunc(s16)65    ; GCN-NEXT: $vgpr0 = COPY %zext(s32)66    %var:_(s64) = COPY $vgpr0_vgpr167    %c3FFF:_(s64) = G_CONSTANT i64 1638368    %low_bits:_(s64) = G_AND %var, %c3FFF69    %trunc:_(s16) = G_TRUNC %low_bits(s64)70    %zext:_(s32) = G_ZEXT %trunc(s16)71    $vgpr0 = COPY %zext(s32)72...73 74---75name: zext_trunc_s32_s16_s6476tracksRegLiveness: true77body: |78  bb.0:79    liveins: $vgpr080 81    ; GCN-LABEL: name: zext_trunc_s32_s16_s6482    ; GCN: liveins: $vgpr083    ; GCN-NEXT: {{  $}}84    ; GCN-NEXT: %var:_(s32) = COPY $vgpr085    ; GCN-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC %var(s32)86    ; GCN-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 1638387    ; GCN-NEXT: %trunc:_(s16) = G_AND [[TRUNC]], [[C]]88    ; GCN-NEXT: %zext:_(s64) = G_ZEXT %trunc(s16)89    ; GCN-NEXT: $vgpr0_vgpr1 = COPY %zext(s64)90    %var:_(s32) = COPY $vgpr091    %c3FFF:_(s32) = G_CONSTANT i32 1638392    %low_bits:_(s32) = G_AND %var, %c3FFF93    %trunc:_(s16) = G_TRUNC %low_bits(s32)94    %zext:_(s64) = G_ZEXT %trunc(s16)95    $vgpr0_vgpr1 = COPY %zext(s64)96...97 98---99name: zext_trunc_v2s32_v2s16_v2s32100tracksRegLiveness: true101body: |102  bb.0:103    liveins: $vgpr0_vgpr1104 105    ; GCN-LABEL: name: zext_trunc_v2s32_v2s16_v2s32106    ; GCN: liveins: $vgpr0_vgpr1107    ; GCN-NEXT: {{  $}}108    ; GCN-NEXT: %var:_(<2 x s32>) = COPY $vgpr0_vgpr1109    ; GCN-NEXT: %c3FFF:_(s32) = G_CONSTANT i32 16383110    ; GCN-NEXT: %c7FFF:_(s32) = G_CONSTANT i32 32767111    ; GCN-NEXT: %c:_(<2 x s32>) = G_BUILD_VECTOR %c3FFF(s32), %c7FFF(s32)112    ; GCN-NEXT: %low_bits:_(<2 x s32>) = G_AND %var, %c113    ; GCN-NEXT: $vgpr0_vgpr1 = COPY %low_bits(<2 x s32>)114    %var:_(<2 x s32>) = COPY $vgpr0_vgpr1115    %c3FFF:_(s32) = G_CONSTANT i32 16383116    %c7FFF:_(s32) = G_CONSTANT i32 32767117    %c:_(<2 x s32>) = G_BUILD_VECTOR %c3FFF(s32), %c7FFF(s32)118    %low_bits:_(<2 x s32>) = G_AND %var, %c119    %trunc:_(<2 x s16>) = G_TRUNC %low_bits(<2 x s32>)120    %zext:_(<2 x s32>) = G_ZEXT %trunc(<2 x s16>)121    $vgpr0_vgpr1 = COPY %zext(<2 x s32>)122...123 124---125name: zext_trunc_v2s32_v2s16_v2s32_unknown_high_bits126tracksRegLiveness: true127body: |128  bb.0:129    liveins: $vgpr0_vgpr1130 131    ; GCN-LABEL: name: zext_trunc_v2s32_v2s16_v2s32_unknown_high_bits132    ; GCN: liveins: $vgpr0_vgpr1133    ; GCN-NEXT: {{  $}}134    ; GCN-NEXT: %var:_(<2 x s32>) = COPY $vgpr0_vgpr1135    ; GCN-NEXT: %cFFFFF:_(s32) = G_CONSTANT i32 1048575136    ; GCN-NEXT: %c7FFF:_(s32) = G_CONSTANT i32 32767137    ; GCN-NEXT: %c:_(<2 x s32>) = G_BUILD_VECTOR %cFFFFF(s32), %c7FFF(s32)138    ; GCN-NEXT: %low_bits:_(<2 x s32>) = G_AND %var, %c139    ; GCN-NEXT: %trunc:_(<2 x s16>) = G_TRUNC %low_bits(<2 x s32>)140    ; GCN-NEXT: %zext:_(<2 x s32>) = G_ZEXT %trunc(<2 x s16>)141    ; GCN-NEXT: $vgpr0_vgpr1 = COPY %zext(<2 x s32>)142    %var:_(<2 x s32>) = COPY $vgpr0_vgpr1143    %cFFFFF:_(s32) = G_CONSTANT i32 1048575144    %c7FFF:_(s32) = G_CONSTANT i32 32767145    %c:_(<2 x s32>) = G_BUILD_VECTOR %cFFFFF(s32), %c7FFF(s32)146    %low_bits:_(<2 x s32>) = G_AND %var, %c147    %trunc:_(<2 x s16>) = G_TRUNC %low_bits(<2 x s32>)148    %zext:_(<2 x s32>) = G_ZEXT %trunc(<2 x s16>)149    $vgpr0_vgpr1 = COPY %zext(<2 x s32>)150...151 152---153name: zext_trunc_v2s64_v2s16_v2s32154tracksRegLiveness: true155body: |156  bb.0:157    liveins: $vgpr0_vgpr1_vgpr2_vgpr3158 159    ; GCN-LABEL: name: zext_trunc_v2s64_v2s16_v2s32160    ; GCN: liveins: $vgpr0_vgpr1_vgpr2_vgpr3161    ; GCN-NEXT: {{  $}}162    ; GCN-NEXT: %var:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3163    ; GCN-NEXT: %c3FFF:_(s64) = G_CONSTANT i64 16383164    ; GCN-NEXT: %c7FFF:_(s64) = G_CONSTANT i64 32767165    ; GCN-NEXT: %c:_(<2 x s64>) = G_BUILD_VECTOR %c3FFF(s64), %c7FFF(s64)166    ; GCN-NEXT: %low_bits:_(<2 x s64>) = G_AND %var, %c167    ; GCN-NEXT: %trunc:_(<2 x s16>) = G_TRUNC %low_bits(<2 x s64>)168    ; GCN-NEXT: %zext:_(<2 x s32>) = G_ZEXT %trunc(<2 x s16>)169    ; GCN-NEXT: $vgpr0_vgpr1 = COPY %zext(<2 x s32>)170    %var:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3171    %c3FFF:_(s64) = G_CONSTANT i64 16383172    %c7FFF:_(s64) = G_CONSTANT i64 32767173    %c:_(<2 x s64>) = G_BUILD_VECTOR %c3FFF(s64), %c7FFF(s64)174    %low_bits:_(<2 x s64>) = G_AND %var, %c175    %trunc:_(<2 x s16>) = G_TRUNC %low_bits(<2 x s64>)176    %zext:_(<2 x s32>) = G_ZEXT %trunc(<2 x s16>)177    $vgpr0_vgpr1 = COPY %zext(<2 x s32>)178...179 180---181name: zext_trunc_v2s32_v2s16_v2s64182tracksRegLiveness: true183body: |184  bb.0:185    liveins: $vgpr0_vgpr1186 187    ; GCN-LABEL: name: zext_trunc_v2s32_v2s16_v2s64188    ; GCN: liveins: $vgpr0_vgpr1189    ; GCN-NEXT: {{  $}}190    ; GCN-NEXT: %var:_(<2 x s32>) = COPY $vgpr0_vgpr1191    ; GCN-NEXT: %c3FFF:_(s32) = G_CONSTANT i32 16383192    ; GCN-NEXT: %c7FFF:_(s32) = G_CONSTANT i32 32767193    ; GCN-NEXT: %c:_(<2 x s32>) = G_BUILD_VECTOR %c3FFF(s32), %c7FFF(s32)194    ; GCN-NEXT: %low_bits:_(<2 x s32>) = G_AND %var, %c195    ; GCN-NEXT: %trunc:_(<2 x s16>) = G_TRUNC %low_bits(<2 x s32>)196    ; GCN-NEXT: %zext:_(<2 x s64>) = G_ZEXT %trunc(<2 x s16>)197    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %zext(<2 x s64>)198    %var:_(<2 x s32>) = COPY $vgpr0_vgpr1199    %c3FFF:_(s32) = G_CONSTANT i32 16383200    %c7FFF:_(s32) = G_CONSTANT i32 32767201    %c:_(<2 x s32>) = G_BUILD_VECTOR %c3FFF(s32), %c7FFF(s32)202    %low_bits:_(<2 x s32>) = G_AND %var, %c203    %trunc:_(<2 x s16>) = G_TRUNC %low_bits(<2 x s32>)204    %zext:_(<2 x s64>) = G_ZEXT %trunc(<2 x s16>)205    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %zext(<2 x s64>)206...207