xref: /llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptr-add.mir (revision 87503fa51c8d726510d48e707a7d2885a5b5936c)
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