xref: /llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sextload-private.mir (revision 8871c3c562690347d75190be758312d1f92a7db4)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer -o - %s | FileCheck %s
3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer -o - %s | FileCheck %s
4
5---
6name: test_sextload_private_i32_i8
7body: |
8  bb.0:
9    liveins: $vgpr0
10
11    ; CHECK-LABEL: name: test_sextload_private_i32_i8
12    ; CHECK: liveins: $vgpr0
13    ; CHECK-NEXT: {{  $}}
14    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
15    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p5) :: (load (s8), addrspace 5)
16    ; CHECK-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)
17    %0:_(p5) = COPY $vgpr0
18    %1:_(s32) = G_SEXTLOAD %0 :: (load (s8), addrspace 5)
19
20    $vgpr0 = COPY %1
21...
22---
23name: test_sextload_private_i32_i16
24body: |
25  bb.0:
26    liveins: $vgpr0
27
28    ; CHECK-LABEL: name: test_sextload_private_i32_i16
29    ; CHECK: liveins: $vgpr0
30    ; CHECK-NEXT: {{  $}}
31    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
32    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p5) :: (load (s16), addrspace 5)
33    ; CHECK-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)
34    %0:_(p5) = COPY $vgpr0
35    %1:_(s32) = G_SEXTLOAD %0 :: (load (s16), addrspace 5)
36    $vgpr0 = COPY %1
37...
38---
39name: test_sextload_private_i31_i8
40body: |
41  bb.0:
42    liveins: $vgpr0
43
44    ; CHECK-LABEL: name: test_sextload_private_i31_i8
45    ; CHECK: liveins: $vgpr0
46    ; CHECK-NEXT: {{  $}}
47    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
48    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p5) :: (load (s8), addrspace 5)
49    ; CHECK-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)
50    %0:_(p5) = COPY $vgpr0
51    %1:_(s31) = G_SEXTLOAD %0 :: (load (s8), addrspace 5)
52    %2:_(s32) = G_ANYEXT %1
53    $vgpr0 = COPY %2
54...
55---
56name: test_sextload_private_i64_i8
57body: |
58  bb.0:
59    liveins: $vgpr0
60
61    ; CHECK-LABEL: name: test_sextload_private_i64_i8
62    ; CHECK: liveins: $vgpr0
63    ; CHECK-NEXT: {{  $}}
64    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
65    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p5) :: (load (s8), addrspace 5)
66    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)
67    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
68    %0:_(p5) = COPY $vgpr0
69    %1:_(s64) = G_SEXTLOAD %0 :: (load (s8), addrspace 5)
70    $vgpr0_vgpr1 = COPY %1
71...
72---
73name: test_sextload_private_i64_i16
74body: |
75  bb.0:
76    liveins: $vgpr0
77
78    ; CHECK-LABEL: name: test_sextload_private_i64_i16
79    ; CHECK: liveins: $vgpr0
80    ; CHECK-NEXT: {{  $}}
81    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
82    ; CHECK-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p5) :: (load (s16), addrspace 5)
83    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)
84    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
85    %0:_(p5) = COPY $vgpr0
86    %1:_(s64) = G_SEXTLOAD %0 :: (load (s16), addrspace 5)
87    $vgpr0_vgpr1 = COPY %1
88...
89---
90name: test_sextload_private_i64_i32
91body: |
92  bb.0:
93    liveins: $vgpr0_vgpr1
94
95    ; CHECK-LABEL: name: test_sextload_private_i64_i32
96    ; CHECK: liveins: $vgpr0_vgpr1
97    ; CHECK-NEXT: {{  $}}
98    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
99    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load (s32), addrspace 5)
100    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[LOAD]](s32)
101    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
102    %0:_(p5) = COPY $vgpr0
103    %1:_(s64) = G_SEXTLOAD %0 :: (load (s32), addrspace 5)
104    $vgpr0_vgpr1 = COPY %1
105...
106