brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.9 KiB · 23b8052 Raw
180 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs -o - %s | FileCheck %s3 4# Post-legalizer should not generate illegal extending loads5---6name: sextload_from_inreg7tracksRegLiveness: true8legalized: true9body: |10  bb.0:11    liveins: $vgpr0_vgpr112    ; CHECK-LABEL: name: sextload_from_inreg13    ; CHECK: liveins: $vgpr0_vgpr114    ; CHECK-NEXT: {{  $}}15    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr116    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p1) :: (load (s64), addrspace 1)17    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[LOAD]], 818    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SEXT_INREG]](s64)19    %0:_(p1) = COPY $vgpr0_vgpr120    %1:_(s64) = G_LOAD %0 :: (load (s64), align 8, addrspace 1)21    %2:_(s64) = G_SEXT_INREG %1, 822    $vgpr0_vgpr1 = COPY %223...24 25# Legal to fold into sextload26---27name: sext_inreg_8_sextload_s3228tracksRegLiveness: true29legalized: true30body: |31  bb.0:32    liveins: $vgpr0_vgpr133    ; CHECK-LABEL: name: sext_inreg_8_sextload_s3234    ; CHECK: liveins: $vgpr0_vgpr135    ; CHECK-NEXT: {{  $}}36    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr137    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), align 4, addrspace 1)38    ; CHECK-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)39    %0:_(p1) = COPY $vgpr0_vgpr140    %1:_(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 1)41    %2:_(s32) = G_SEXT_INREG %1, 842    $vgpr0 = COPY %243...44 45---46name: sext_inreg_7_sextload_s3247tracksRegLiveness: true48legalized: true49body: |50  bb.0:51    liveins: $vgpr0_vgpr152    ; CHECK-LABEL: name: sext_inreg_7_sextload_s3253    ; CHECK: liveins: $vgpr0_vgpr154    ; CHECK-NEXT: {{  $}}55    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr156    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), addrspace 1)57    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[LOAD]], 758    ; CHECK-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)59    %0:_(p1) = COPY $vgpr0_vgpr160    %1:_(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 1)61    %2:_(s32) = G_SEXT_INREG %1, 762    $vgpr0 = COPY %263...64 65---66name: sext_inreg_9_sextload_s3267tracksRegLiveness: true68legalized: true69body: |70  bb.0:71    liveins: $vgpr0_vgpr172    ; CHECK-LABEL: name: sext_inreg_9_sextload_s3273    ; CHECK: liveins: $vgpr0_vgpr174    ; CHECK-NEXT: {{  $}}75    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr176    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), addrspace 1)77    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[LOAD]], 978    ; CHECK-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)79    %0:_(p1) = COPY $vgpr0_vgpr180    %1:_(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 1)81    %2:_(s32) = G_SEXT_INREG %1, 982    $vgpr0 = COPY %283...84 85# Legal to fold into sextload86---87name: sext_inreg_16_sextload_s3288tracksRegLiveness: true89legalized: true90body: |91  bb.0:92    liveins: $vgpr0_vgpr193    ; CHECK-LABEL: name: sext_inreg_16_sextload_s3294    ; CHECK: liveins: $vgpr0_vgpr195    ; CHECK-NEXT: {{  $}}96    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr197    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s16), align 4, addrspace 1)98    ; CHECK-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)99    %0:_(p1) = COPY $vgpr0_vgpr1100    %1:_(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 1)101    %2:_(s32) = G_SEXT_INREG %1, 16102    $vgpr0 = COPY %2103...104 105---106name: sext_inreg_8_sextload_s8107tracksRegLiveness: true108legalized: true109body: |110  bb.0:111    liveins: $vgpr0_vgpr1112    ; CHECK-LABEL: name: sext_inreg_8_sextload_s8113    ; CHECK: liveins: $vgpr0_vgpr1114    ; CHECK-NEXT: {{  $}}115    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1116    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)117    ; CHECK-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)118    %0:_(p1) = COPY $vgpr0_vgpr1119    %1:_(s32) = G_LOAD %0 :: (load (s8), align 1, addrspace 1)120    %2:_(s32) = G_SEXT_INREG %1, 8121    $vgpr0 = COPY %2122...123 124---125name: sext_inreg_8_sextload_s8_volatile126tracksRegLiveness: true127legalized: true128body: |129  bb.0:130    liveins: $vgpr0_vgpr1131    ; CHECK-LABEL: name: sext_inreg_8_sextload_s8_volatile132    ; CHECK: liveins: $vgpr0_vgpr1133    ; CHECK-NEXT: {{  $}}134    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1135    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (volatile load (s8), addrspace 1)136    ; CHECK-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)137    %0:_(p1) = COPY $vgpr0_vgpr1138    %1:_(s32) = G_LOAD %0 :: (volatile load (s8), align 1, addrspace 1)139    %2:_(s32) = G_SEXT_INREG %1, 8140    $vgpr0 = COPY %2141...142 143---144name: sext_inreg_16_sextload_s16145tracksRegLiveness: true146legalized: true147body: |148  bb.0:149    liveins: $vgpr0_vgpr1150    ; CHECK-LABEL: name: sext_inreg_16_sextload_s16151    ; CHECK: liveins: $vgpr0_vgpr1152    ; CHECK-NEXT: {{  $}}153    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1154    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s16), addrspace 1)155    ; CHECK-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)156    %0:_(p1) = COPY $vgpr0_vgpr1157    %1:_(s32) = G_LOAD %0 :: (load (s16), align 2, addrspace 1)158    %2:_(s32) = G_SEXT_INREG %1, 16159    $vgpr0 = COPY %2160...161 162---163name: sext_inreg_16_sextload_s16_volatile164tracksRegLiveness: true165legalized: true166body: |167  bb.0:168    liveins: $vgpr0_vgpr1169    ; CHECK-LABEL: name: sext_inreg_16_sextload_s16_volatile170    ; CHECK: liveins: $vgpr0_vgpr1171    ; CHECK-NEXT: {{  $}}172    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1173    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (volatile load (s16), addrspace 1)174    ; CHECK-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)175    %0:_(p1) = COPY $vgpr0_vgpr1176    %1:_(s32) = G_LOAD %0 :: (volatile load (s16), align 2, addrspace 1)177    %2:_(s32) = G_SEXT_INREG %1, 16178    $vgpr0 = COPY %2179...180