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