xref: /llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-zextload-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_zextload_private_i32_i8
7body: |
8  bb.0:
9    liveins: $vgpr0
10
11    ; CHECK-LABEL: name: test_zextload_private_i32_i8
12    ; CHECK: liveins: $vgpr0
13    ; CHECK-NEXT: {{  $}}
14    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
15    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p5) :: (load (s8), addrspace 5)
16    ; CHECK-NEXT: $vgpr0 = COPY [[ZEXTLOAD]](s32)
17    %0:_(p5) = COPY $vgpr0
18    %1:_(s32) = G_ZEXTLOAD %0 :: (load (s8), addrspace 5)
19    $vgpr0 = COPY %1
20...
21---
22name: test_zextload_private_i32_i16
23body: |
24  bb.0:
25    liveins: $vgpr0
26
27    ; CHECK-LABEL: name: test_zextload_private_i32_i16
28    ; CHECK: liveins: $vgpr0
29    ; CHECK-NEXT: {{  $}}
30    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
31    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p5) :: (load (s16), addrspace 5)
32    ; CHECK-NEXT: $vgpr0 = COPY [[ZEXTLOAD]](s32)
33    %0:_(p5) = COPY $vgpr0
34    %1:_(s32) = G_ZEXTLOAD %0 :: (load (s16), addrspace 5)
35    $vgpr0 = COPY %1
36...
37---
38name: test_zextload_private_i31_i8
39body: |
40  bb.0:
41    liveins: $vgpr0
42
43    ; CHECK-LABEL: name: test_zextload_private_i31_i8
44    ; CHECK: liveins: $vgpr0
45    ; CHECK-NEXT: {{  $}}
46    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
47    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p5) :: (load (s8), addrspace 5)
48    ; CHECK-NEXT: $vgpr0 = COPY [[ZEXTLOAD]](s32)
49    %0:_(p5) = COPY $vgpr0
50    %1:_(s31) = G_ZEXTLOAD %0 :: (load (s8), addrspace 5)
51    %2:_(s32) = G_ANYEXT %1
52    $vgpr0 = COPY %2
53...
54---
55name: test_zextload_private_i64_i8
56body: |
57  bb.0:
58    liveins: $vgpr0
59
60    ; CHECK-LABEL: name: test_zextload_private_i64_i8
61    ; CHECK: liveins: $vgpr0
62    ; CHECK-NEXT: {{  $}}
63    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
64    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p5) :: (load (s8), addrspace 5)
65    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[ZEXTLOAD]](s32)
66    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
67    %0:_(p5) = COPY $vgpr0
68    %1:_(s64) = G_ZEXTLOAD %0 :: (load (s8), addrspace 5)
69    $vgpr0_vgpr1 = COPY %1
70...
71---
72name: test_zextload_private_i64_i16
73body: |
74  bb.0:
75    liveins: $vgpr0
76
77    ; CHECK-LABEL: name: test_zextload_private_i64_i16
78    ; CHECK: liveins: $vgpr0
79    ; CHECK-NEXT: {{  $}}
80    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
81    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p5) :: (load (s16), addrspace 5)
82    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[ZEXTLOAD]](s32)
83    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
84    %0:_(p5) = COPY $vgpr0
85    %1:_(s64) = G_ZEXTLOAD %0 :: (load (s16), addrspace 5)
86    $vgpr0_vgpr1 = COPY %1
87...
88---
89name: test_zextload_private_i64_i32
90body: |
91  bb.0:
92    liveins: $vgpr0_vgpr1
93
94    ; CHECK-LABEL: name: test_zextload_private_i64_i32
95    ; CHECK: liveins: $vgpr0_vgpr1
96    ; CHECK-NEXT: {{  $}}
97    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
98    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load (s32), addrspace 5)
99    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[LOAD]](s32)
100    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
101    %0:_(p5) = COPY $vgpr0
102    %1:_(s64) = G_ZEXTLOAD %0 :: (load (s32), addrspace 5)
103    $vgpr0_vgpr1 = COPY %1
104...
105