brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.5 KiB · 81fd301 Raw
391 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=amdgpu-prelegalizer-combiner -verify-machineinstrs %s -o - | FileCheck -check-prefix=GCN %s3 4---5name: sext_inreg_s32_7_sextload_from_16tracksRegLiveness: true7body:             |8  bb.0:9    liveins: $vgpr0_vgpr1, $vgpr2_vgpr310 11    ; GCN-LABEL: name: sext_inreg_s32_7_sextload_from_112    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr313    ; GCN-NEXT: {{  $}}14    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr115    ; GCN-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)16    ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[SEXTLOAD]], 717    ; GCN-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)18    %0:_(p1) = COPY $vgpr0_vgpr119    %1:_(s32) = G_SEXTLOAD %0 :: (load (s8), addrspace 1)20    %2:_(s32) = G_SEXT_INREG %1, 721    $vgpr0 = COPY %222 23...24 25---26name: sext_inreg_s32_8_sextload_from_127tracksRegLiveness: true28body:             |29  bb.0:30    liveins: $vgpr0_vgpr1, $vgpr2_vgpr331 32    ; GCN-LABEL: name: sext_inreg_s32_8_sextload_from_133    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr334    ; GCN-NEXT: {{  $}}35    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr136    ; GCN-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)37    ; GCN-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)38    %0:_(p1) = COPY $vgpr0_vgpr139    %1:_(s32) = G_SEXTLOAD %0 :: (load (s8), addrspace 1)40    %2:_(s32) = G_SEXT_INREG %1, 841    $vgpr0 = COPY %242 43...44 45---46name: sext_inreg_s32_9_sextload_from_147tracksRegLiveness: true48body:             |49  bb.0:50    liveins: $vgpr0_vgpr1, $vgpr2_vgpr351 52    ; GCN-LABEL: name: sext_inreg_s32_9_sextload_from_153    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr354    ; GCN-NEXT: {{  $}}55    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr156    ; GCN-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)57    ; GCN-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)58    %0:_(p1) = COPY $vgpr0_vgpr159    %1:_(s32) = G_SEXTLOAD %0 :: (load (s8), addrspace 1)60    %2:_(s32) = G_SEXT_INREG %1, 961    $vgpr0 = COPY %262 63...64 65---66name: sext_inreg_s32_7_sext_from_s867tracksRegLiveness: true68body:             |69  bb.0:70    liveins: $vgpr0_vgpr1, $vgpr2_vgpr371 72    ; GCN-LABEL: name: sext_inreg_s32_7_sext_from_s873    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr374    ; GCN-NEXT: {{  $}}75    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr176    ; GCN-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)77    ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[SEXTLOAD]], 778    ; GCN-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)79    %0:_(p1) = COPY $vgpr0_vgpr180    %1:_(s8) = G_LOAD %0 :: (load (s8), addrspace 1)81    %2:_(s32) = G_SEXT %182    %3:_(s32) = G_SEXT_INREG %2, 783    $vgpr0 = COPY %384 85...86 87---88name: sext_inreg_s32_8_sext_from_s889tracksRegLiveness: true90body:             |91  bb.0:92    liveins: $vgpr0_vgpr1, $vgpr2_vgpr393 94    ; GCN-LABEL: name: sext_inreg_s32_8_sext_from_s895    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr396    ; GCN-NEXT: {{  $}}97    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr198    ; GCN-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)99    ; GCN-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)100    %0:_(p1) = COPY $vgpr0_vgpr1101    %1:_(s8) = G_LOAD %0 :: (load (s8), addrspace 1)102    %2:_(s32) = G_SEXT %1103    %3:_(s32) = G_SEXT_INREG %2, 8104    $vgpr0 = COPY %3105 106...107 108---109name: sext_inreg_s32_8_sext_from_s9110tracksRegLiveness: true111body:             |112  bb.0:113    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3114 115    ; GCN-LABEL: name: sext_inreg_s32_8_sext_from_s9116    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3117    ; GCN-NEXT: {{  $}}118    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1119    ; GCN-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)120    ; GCN-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)121    %0:_(p1) = COPY $vgpr0_vgpr1122    %1:_(s8) = G_LOAD %0 :: (load (s8), addrspace 1)123    %2:_(s32) = G_SEXT %1124    %3:_(s32) = G_SEXT_INREG %2, 9125    $vgpr0 = COPY %3126 127...128 129---130name: sext_inreg_v2s32_7_sext_from_v2s8131tracksRegLiveness: true132body:             |133  bb.0:134    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3135 136    ; GCN-LABEL: name: sext_inreg_v2s32_7_sext_from_v2s8137    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3138    ; GCN-NEXT: {{  $}}139    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1140    ; GCN-NEXT: [[LOAD:%[0-9]+]]:_(<2 x s8>) = G_LOAD [[COPY]](p1) :: (load (<2 x s8>), addrspace 1)141    ; GCN-NEXT: [[SEXT:%[0-9]+]]:_(<2 x s32>) = G_SEXT [[LOAD]](<2 x s8>)142    ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(<2 x s32>) = G_SEXT_INREG [[SEXT]], 7143    ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[SEXT_INREG]](<2 x s32>)144    %0:_(p1) = COPY $vgpr0_vgpr1145    %1:_(<2 x s8>) = G_LOAD %0 :: (load (<2 x s8>), addrspace 1)146    %2:_(<2 x s32>) = G_SEXT %1147    %3:_(<2 x s32>) = G_SEXT_INREG %2, 7148    $vgpr0_vgpr1 = COPY %3149 150...151 152---153name: sext_inreg_v2s32_8_sext_from_v2s8154tracksRegLiveness: true155body:             |156  bb.0:157    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3158 159    ; GCN-LABEL: name: sext_inreg_v2s32_8_sext_from_v2s8160    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3161    ; GCN-NEXT: {{  $}}162    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1163    ; GCN-NEXT: [[LOAD:%[0-9]+]]:_(<2 x s8>) = G_LOAD [[COPY]](p1) :: (load (<2 x s8>), addrspace 1)164    ; GCN-NEXT: [[SEXT:%[0-9]+]]:_(<2 x s32>) = G_SEXT [[LOAD]](<2 x s8>)165    ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](<2 x s32>)166    %0:_(p1) = COPY $vgpr0_vgpr1167    %1:_(<2 x s8>) = G_LOAD %0 :: (load (<2 x s8>), addrspace 1)168    %2:_(<2 x s32>) = G_SEXT %1169    %3:_(<2 x s32>) = G_SEXT_INREG %2, 8170    $vgpr0_vgpr1 = COPY %3171 172...173 174---175name: sext_inreg_v2s32_9_sext_from_v2s8176tracksRegLiveness: true177body:             |178  bb.0:179    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3180 181    ; GCN-LABEL: name: sext_inreg_v2s32_9_sext_from_v2s8182    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3183    ; GCN-NEXT: {{  $}}184    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1185    ; GCN-NEXT: [[LOAD:%[0-9]+]]:_(<2 x s8>) = G_LOAD [[COPY]](p1) :: (load (<2 x s8>), addrspace 1)186    ; GCN-NEXT: [[SEXT:%[0-9]+]]:_(<2 x s32>) = G_SEXT [[LOAD]](<2 x s8>)187    ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](<2 x s32>)188    %0:_(p1) = COPY $vgpr0_vgpr1189    %1:_(<2 x s8>) = G_LOAD %0 :: (load (<2 x s8>), addrspace 1)190    %2:_(<2 x s32>) = G_SEXT %1191    %3:_(<2 x s32>) = G_SEXT_INREG %2, 9192    $vgpr0_vgpr1 = COPY %3193 194...195 196---197name: sext_inreg_s32_7_zextload_from_1198tracksRegLiveness: true199body:             |200  bb.0:201    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3202 203    ; GCN-LABEL: name: sext_inreg_s32_7_zextload_from_1204    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3205    ; GCN-NEXT: {{  $}}206    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1207    ; GCN-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)208    ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[ZEXTLOAD]], 7209    ; GCN-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)210    %0:_(p1) = COPY $vgpr0_vgpr1211    %1:_(s32) = G_ZEXTLOAD %0 :: (load (s8), addrspace 1)212    %2:_(s32) = G_SEXT_INREG %1, 7213    $vgpr0 = COPY %2214 215...216 217---218name: sext_inreg_s32_8_zextload_from_1219tracksRegLiveness: true220body:             |221  bb.0:222    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3223 224    ; GCN-LABEL: name: sext_inreg_s32_8_zextload_from_1225    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3226    ; GCN-NEXT: {{  $}}227    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1228    ; GCN-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)229    ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[ZEXTLOAD]], 8230    ; GCN-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)231    %0:_(p1) = COPY $vgpr0_vgpr1232    %1:_(s32) = G_ZEXTLOAD %0 :: (load (s8), addrspace 1)233    %2:_(s32) = G_SEXT_INREG %1, 8234    $vgpr0 = COPY %2235 236...237 238---239name: sext_inreg_s32_9_zextload_from_1240tracksRegLiveness: true241body:             |242  bb.0:243    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3244 245    ; GCN-LABEL: name: sext_inreg_s32_9_zextload_from_1246    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3247    ; GCN-NEXT: {{  $}}248    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1249    ; GCN-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)250    ; GCN-NEXT: $vgpr0 = COPY [[ZEXTLOAD]](s32)251    %0:_(p1) = COPY $vgpr0_vgpr1252    %1:_(s32) = G_ZEXTLOAD %0 :: (load (s8), addrspace 1)253    %2:_(s32) = G_SEXT_INREG %1, 9254    $vgpr0 = COPY %2255 256...257 258---259name: sext_inreg_s32_select_sextload_from_1260tracksRegLiveness: true261body:             |262  bb.0:263    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4, $vgpr5264 265    ; GCN-LABEL: name: sext_inreg_s32_select_sextload_from_1266    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4, $vgpr5267    ; GCN-NEXT: {{  $}}268    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1269    ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(p1) = COPY $vgpr2_vgpr3270    ; GCN-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr4271    ; GCN-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr5272    ; GCN-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]273    ; GCN-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)274    ; GCN-NEXT: [[SEXTLOAD1:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY1]](p1) :: (load (s8), addrspace 1)275    ; GCN-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[SEXTLOAD]], [[SEXTLOAD1]]276    ; GCN-NEXT: $vgpr0 = COPY [[SELECT]](s32)277    %0:_(p1) = COPY $vgpr0_vgpr1278    %1:_(p1) = COPY $vgpr2_vgpr3279    %2:_(s32) = COPY $vgpr4280    %3:_(s32) = COPY $vgpr5281    %4:_(s1) = G_ICMP intpred(eq), %2, %3282    %5:_(s32) = G_SEXTLOAD %0 :: (load (s8), addrspace 1)283    %6:_(s32) = G_SEXTLOAD %1 :: (load (s8), addrspace 1)284    %7:_(s32) = G_SELECT %4, %5, %6285    %8:_(s32) = G_SEXT_INREG %7, 8286    $vgpr0 = COPY %8287 288...289 290---291name: sext_inreg_s32_select_sextload_from_1_fail_lhs292tracksRegLiveness: true293body:             |294  bb.0:295    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4, $vgpr5296 297    ; GCN-LABEL: name: sext_inreg_s32_select_sextload_from_1_fail_lhs298    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4, $vgpr5299    ; GCN-NEXT: {{  $}}300    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1301    ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(p1) = COPY $vgpr2_vgpr3302    ; GCN-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr4303    ; GCN-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr5304    ; GCN-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]305    ; GCN-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), addrspace 1)306    ; GCN-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY1]](p1) :: (load (s8), addrspace 1)307    ; GCN-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[LOAD]], [[SEXTLOAD]]308    ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[SELECT]], 8309    ; GCN-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)310    %0:_(p1) = COPY $vgpr0_vgpr1311    %1:_(p1) = COPY $vgpr2_vgpr3312    %2:_(s32) = COPY $vgpr4313    %3:_(s32) = COPY $vgpr5314    %4:_(s1) = G_ICMP intpred(eq), %2, %3315    %5:_(s32) = G_LOAD %0 :: (load (s32), addrspace 1)316    %6:_(s32) = G_SEXTLOAD %1 :: (load (s8), addrspace 1)317    %7:_(s32) = G_SELECT %4, %5, %6318    %8:_(s32) = G_SEXT_INREG %7, 8319    $vgpr0 = COPY %8320 321...322 323---324name: sext_inreg_s32_select_sextload_from_1_fail_rhs325tracksRegLiveness: true326body:             |327  bb.0:328    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4, $vgpr5329 330    ; GCN-LABEL: name: sext_inreg_s32_select_sextload_from_1_fail_rhs331    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4, $vgpr5332    ; GCN-NEXT: {{  $}}333    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1334    ; GCN-NEXT: [[COPY1:%[0-9]+]]:_(p1) = COPY $vgpr2_vgpr3335    ; GCN-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr4336    ; GCN-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr5337    ; GCN-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]338    ; GCN-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)339    ; GCN-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY1]](p1) :: (load (s32), addrspace 1)340    ; GCN-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[SEXTLOAD]], [[LOAD]]341    ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[SELECT]], 8342    ; GCN-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)343    %0:_(p1) = COPY $vgpr0_vgpr1344    %1:_(p1) = COPY $vgpr2_vgpr3345    %2:_(s32) = COPY $vgpr4346    %3:_(s32) = COPY $vgpr5347    %4:_(s1) = G_ICMP intpred(eq), %2, %3348    %5:_(s32) = G_SEXTLOAD %0 :: (load (s8), addrspace 1)349    %6:_(s32) = G_LOAD %1 :: (load (s32), addrspace 1)350    %7:_(s32) = G_SELECT %4, %5, %6351    %8:_(s32) = G_SEXT_INREG %7, 8352    $vgpr0 = COPY %8353 354...355---356name: assert_sext_s8357tracksRegLiveness: true358body:             |359  bb.0:360    liveins: $vgpr0361    ; GCN-LABEL: name: assert_sext_s8362    ; GCN: liveins: $vgpr0363    ; GCN-NEXT: {{  $}}364    ; GCN-NEXT: %copy:_(s32) = COPY $vgpr0365    ; GCN-NEXT: %assert_sext:_(s32) = G_ASSERT_SEXT %copy, 8366    ; GCN-NEXT: $vgpr0 = COPY %assert_sext(s32)367    %copy:_(s32) = COPY $vgpr0368    %assert_sext:_(s32) = G_ASSERT_SEXT %copy, 8369    %sext_inreg:_(s32) = G_SEXT_INREG %assert_sext, 8370    $vgpr0 = COPY %sext_inreg371 372...373---374name: sext_inreg_s7_assert_sext_s8375tracksRegLiveness: true376body:             |377  bb.0:378    liveins: $vgpr0379    ; GCN-LABEL: name: sext_inreg_s7_assert_sext_s8380    ; GCN: liveins: $vgpr0381    ; GCN-NEXT: {{  $}}382    ; GCN-NEXT: %copy:_(s32) = COPY $vgpr0383    ; GCN-NEXT: %assert_sext:_(s32) = G_ASSERT_SEXT %copy, 8384    ; GCN-NEXT: %sext_inreg:_(s32) = G_SEXT_INREG %assert_sext, 7385    ; GCN-NEXT: $vgpr0 = COPY %sext_inreg(s32)386    %copy:_(s32) = COPY $vgpr0387    %assert_sext:_(s32) = G_ASSERT_SEXT %copy, 8388    %sext_inreg:_(s32) = G_SEXT_INREG %assert_sext, 7389    $vgpr0 = COPY %sext_inreg390...391