1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck %s 3# RUN: llc -mtriple=amdgcn -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck %s 4 5--- 6name: gep_p1_s_k 7legalized: true 8 9body: | 10 bb.0: 11 liveins: $sgpr0_sgpr1 12 13 ; CHECK-LABEL: name: gep_p1_s_k 14 ; CHECK: liveins: $sgpr0_sgpr1 15 ; CHECK-NEXT: {{ $}} 16 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1 17 ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s64) = G_CONSTANT i64 1 18 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p1) = G_PTR_ADD [[COPY]], [[C]](s64) 19 %0:_(p1) = COPY $sgpr0_sgpr1 20 %1:_(s64) = G_CONSTANT i64 1 21 %2:_(p1) = G_PTR_ADD %0, %1 22... 23 24--- 25name: gep_p1_s_s 26legalized: true 27 28body: | 29 bb.0: 30 liveins: $sgpr0_sgpr1, $sgpr2_sgpr3 31 32 ; CHECK-LABEL: name: gep_p1_s_s 33 ; CHECK: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3 34 ; CHECK-NEXT: {{ $}} 35 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1 36 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3 37 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:sgpr(p1) = G_PTR_ADD [[COPY]], [[COPY1]](s64) 38 %0:_(p1) = COPY $sgpr0_sgpr1 39 %1:_(s64) = COPY $sgpr2_sgpr3 40 %2:_(p1) = G_PTR_ADD %0, %1 41... 42 43--- 44name: gep_p1_v_k 45legalized: true 46 47body: | 48 bb.0: 49 liveins: $vgpr0_vgpr1 50 51 ; CHECK-LABEL: name: gep_p1_v_k 52 ; CHECK: liveins: $vgpr0_vgpr1 53 ; CHECK-NEXT: {{ $}} 54 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1 55 ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s64) = G_CONSTANT i64 1 56 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY [[C]](s64) 57 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:vgpr(p1) = G_PTR_ADD [[COPY]], [[COPY1]](s64) 58 %0:_(p1) = COPY $vgpr0_vgpr1 59 %1:_(s64) = G_CONSTANT i64 1 60 %2:_(p1) = G_PTR_ADD %0, %1 61... 62 63--- 64name: gep_p1_v_s 65legalized: true 66 67body: | 68 bb.0: 69 liveins: $vgpr0_vgpr1, $sgpr0_sgpr1 70 71 ; CHECK-LABEL: name: gep_p1_v_s 72 ; CHECK: liveins: $vgpr0_vgpr1, $sgpr0_sgpr1 73 ; CHECK-NEXT: {{ $}} 74 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1 75 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1 76 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY1]](s64) 77 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:vgpr(p1) = G_PTR_ADD [[COPY]], [[COPY2]](s64) 78 %0:_(p1) = COPY $vgpr0_vgpr1 79 %1:_(s64) = COPY $sgpr0_sgpr1 80 %2:_(p1) = G_PTR_ADD %0, %1 81... 82 83--- 84name: gep_p1_v_v 85legalized: true 86 87body: | 88 bb.0: 89 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 90 91 ; CHECK-LABEL: name: gep_p1_v_v 92 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 93 ; CHECK-NEXT: {{ $}} 94 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1 95 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3 96 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:vgpr(p1) = G_PTR_ADD [[COPY]], [[COPY1]](s64) 97 %0:_(p1) = COPY $vgpr0_vgpr1 98 %1:_(s64) = COPY $vgpr2_vgpr3 99 %2:_(p1) = G_PTR_ADD %0, %1 100... 101