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: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
13    ; CHECK: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p5) :: (load 1, addrspace 5)
14    ; CHECK: $vgpr0 = COPY [[ZEXTLOAD]](s32)
15    %0:_(p5) = COPY $vgpr0
16    %1:_(s32) = G_ZEXTLOAD %0 :: (load 1, addrspace 5)
17    $vgpr0 = COPY %1
18...
19---
20name: test_zextload_private_i32_i16
21body: |
22  bb.0:
23    liveins: $vgpr0
24
25    ; CHECK-LABEL: name: test_zextload_private_i32_i16
26    ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
27    ; CHECK: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p5) :: (load 2, addrspace 5)
28    ; CHECK: $vgpr0 = COPY [[ZEXTLOAD]](s32)
29    %0:_(p5) = COPY $vgpr0
30    %1:_(s32) = G_ZEXTLOAD %0 :: (load 2, addrspace 5)
31    $vgpr0 = COPY %1
32...
33---
34name: test_zextload_private_i31_i8
35body: |
36  bb.0:
37    liveins: $vgpr0
38
39    ; CHECK-LABEL: name: test_zextload_private_i31_i8
40    ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
41    ; CHECK: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p5) :: (load 1, addrspace 5)
42    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[ZEXTLOAD]](s32)
43    ; CHECK: $vgpr0 = COPY [[COPY1]](s32)
44    %0:_(p5) = COPY $vgpr0
45    %1:_(s31) = G_ZEXTLOAD %0 :: (load 1, addrspace 5)
46    %2:_(s32) = G_ANYEXT %1
47    $vgpr0 = COPY %2
48...
49---
50name: test_zextload_private_i64_i8
51body: |
52  bb.0:
53    liveins: $vgpr0
54
55    ; CHECK-LABEL: name: test_zextload_private_i64_i8
56    ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
57    ; CHECK: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p5) :: (load 1, addrspace 5)
58    ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[ZEXTLOAD]](s32)
59    ; CHECK: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
60    %0:_(p5) = COPY $vgpr0
61    %1:_(s64) = G_ZEXTLOAD %0 :: (load 1, addrspace 5)
62    $vgpr0_vgpr1 = COPY %1
63...
64---
65name: test_zextload_private_i64_i16
66body: |
67  bb.0:
68    liveins: $vgpr0
69
70    ; CHECK-LABEL: name: test_zextload_private_i64_i16
71    ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
72    ; CHECK: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p5) :: (load 2, addrspace 5)
73    ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[ZEXTLOAD]](s32)
74    ; CHECK: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
75    %0:_(p5) = COPY $vgpr0
76    %1:_(s64) = G_ZEXTLOAD %0 :: (load 2, addrspace 5)
77    $vgpr0_vgpr1 = COPY %1
78...
79---
80name: test_zextload_private_i64_i32
81body: |
82  bb.0:
83    liveins: $vgpr0_vgpr1
84
85    ; CHECK-LABEL: name: test_zextload_private_i64_i32
86    ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
87    ; CHECK: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
88    ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[LOAD]](s32)
89    ; CHECK: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
90    %0:_(p5) = COPY $vgpr0
91    %1:_(s64) = G_ZEXTLOAD %0 :: (load 4, addrspace 5)
92    $vgpr0_vgpr1 = COPY %1
93...
94