1
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: not llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer -o /dev/null %s 2>&1 | FileCheck -check-prefix=ERROR %s
4
-
5
- # ERROR: LLVM ERROR: unable to legalize instruction: %2:_(s8) = G_LOAD %0:_(p0) :: (load 1) (in function: test_sextload_flat_i32_i8)
6
-
2
+ # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer -o - %s | FileCheck %s -check-prefixes=GCN,SI
3
+ # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer -o - %s | FileCheck %s -check-prefixes=GCN,VI
7
4
---
8
5
name : test_sextload_flat_i32_i8
9
6
body : |
10
7
bb.0:
11
8
liveins: $vgpr0_vgpr1
12
9
13
- ; CHECK-LABEL: name: test_sextload_flat_i32_i8
14
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
15
- ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load 1)
16
- ; CHECK: $vgpr0 = COPY [[SEXTLOAD]](s32)
10
+ ; SI-LABEL: name: test_sextload_flat_i32_i8
11
+ ; SI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
12
+ ; SI: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load 1)
13
+ ; SI: $vgpr0 = COPY [[SEXTLOAD]](s32)
14
+ ; VI-LABEL: name: test_sextload_flat_i32_i8
15
+ ; VI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
16
+ ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load 1)
17
+ ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
18
+ ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
19
+ ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)
20
+ ; VI: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
21
+ ; VI: $vgpr0 = COPY [[ASHR]](s32)
17
22
%0:_(p0) = COPY $vgpr0_vgpr1
18
23
%1:_(s32) = G_SEXTLOAD %0 :: (load 1, addrspace 0)
19
24
$vgpr0 = COPY %1
@@ -24,11 +29,19 @@ body: |
24
29
bb.0:
25
30
liveins: $vgpr0_vgpr1
26
31
27
- ; CHECK-LABEL: name: test_sextload_flat_i32_i16
28
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
29
- ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load 2)
30
- ; CHECK: $vgpr0 = COPY [[SEXTLOAD]](s32)
31
- %0:_(p0) = COPY $vgpr0_vgpr1
32
+ ; SI-LABEL: name: test_sextload_flat_i32_i16
33
+ ; SI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
34
+ ; SI: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load 2)
35
+ ; SI: $vgpr0 = COPY [[SEXTLOAD]](s32)
36
+ ; VI-LABEL: name: test_sextload_flat_i32_i16
37
+ ; VI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
38
+ ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load 2)
39
+ ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
40
+ ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
41
+ ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)
42
+ ; VI: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
43
+ ; VI: $vgpr0 = COPY [[ASHR]](s32)
44
+ %0:_(p0) = COPY $vgpr0_vgpr1
32
45
%1:_(s32) = G_SEXTLOAD %0 :: (load 2, addrspace 0)
33
46
$vgpr0 = COPY %1
34
47
...
@@ -38,11 +51,20 @@ body: |
38
51
bb.0:
39
52
liveins: $vgpr0_vgpr1
40
53
41
- ; CHECK-LABEL: name: test_sextload_flat_i31_i8
42
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
43
- ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load 1)
44
- ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[SEXTLOAD]](s32)
45
- ; CHECK: $vgpr0 = COPY [[COPY1]](s32)
54
+ ; SI-LABEL: name: test_sextload_flat_i31_i8
55
+ ; SI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
56
+ ; SI: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load 1)
57
+ ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[SEXTLOAD]](s32)
58
+ ; SI: $vgpr0 = COPY [[COPY1]](s32)
59
+ ; VI-LABEL: name: test_sextload_flat_i31_i8
60
+ ; VI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
61
+ ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load 1)
62
+ ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
63
+ ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
64
+ ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)
65
+ ; VI: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
66
+ ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[ASHR]](s32)
67
+ ; VI: $vgpr0 = COPY [[COPY2]](s32)
46
68
%0:_(p0) = COPY $vgpr0_vgpr1
47
69
%1:_(s31) = G_SEXTLOAD %0 :: (load 1, addrspace 0)
48
70
%2:_(s32) = G_ANYEXT %1
@@ -54,11 +76,20 @@ body: |
54
76
bb.0:
55
77
liveins: $vgpr0_vgpr1
56
78
57
- ; CHECK-LABEL: name: test_sextload_flat_i64_i8
58
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
59
- ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load 1)
60
- ; CHECK: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)
61
- ; CHECK: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
79
+ ; SI-LABEL: name: test_sextload_flat_i64_i8
80
+ ; SI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
81
+ ; SI: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load 1)
82
+ ; SI: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)
83
+ ; SI: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
84
+ ; VI-LABEL: name: test_sextload_flat_i64_i8
85
+ ; VI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
86
+ ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load 1)
87
+ ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
88
+ ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
89
+ ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)
90
+ ; VI: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
91
+ ; VI: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[ASHR]](s32)
92
+ ; VI: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
62
93
%0:_(p0) = COPY $vgpr0_vgpr1
63
94
%1:_(s64) = G_SEXTLOAD %0 :: (load 1, addrspace 0)
64
95
$vgpr0_vgpr1 = COPY %1
@@ -69,11 +100,20 @@ body: |
69
100
bb.0:
70
101
liveins: $vgpr0_vgpr1
71
102
72
- ; CHECK-LABEL: name: test_sextload_flat_i64_i16
73
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
74
- ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load 2)
75
- ; CHECK: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)
76
- ; CHECK: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
103
+ ; SI-LABEL: name: test_sextload_flat_i64_i16
104
+ ; SI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
105
+ ; SI: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p0) :: (load 2)
106
+ ; SI: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)
107
+ ; SI: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
108
+ ; VI-LABEL: name: test_sextload_flat_i64_i16
109
+ ; VI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
110
+ ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load 2)
111
+ ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
112
+ ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
113
+ ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)
114
+ ; VI: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
115
+ ; VI: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[ASHR]](s32)
116
+ ; VI: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
77
117
%0:_(p0) = COPY $vgpr0_vgpr1
78
118
%1:_(s64) = G_SEXTLOAD %0 :: (load 2, addrspace 0)
79
119
$vgpr0_vgpr1 = COPY %1
@@ -84,11 +124,16 @@ body: |
84
124
bb.0:
85
125
liveins: $vgpr0_vgpr1
86
126
87
- ; CHECK-LABEL: name: test_sextload_flat_i64_i32
88
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
89
- ; CHECK: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load 4)
90
- ; CHECK: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[LOAD]](s32)
91
- ; CHECK: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
127
+ ; SI-LABEL: name: test_sextload_flat_i64_i32
128
+ ; SI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
129
+ ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load 4)
130
+ ; SI: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[LOAD]](s32)
131
+ ; SI: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
132
+ ; VI-LABEL: name: test_sextload_flat_i64_i32
133
+ ; VI: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
134
+ ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load 4)
135
+ ; VI: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[LOAD]](s32)
136
+ ; VI: $vgpr0_vgpr1 = COPY [[SEXT]](s64)
92
137
%0:_(p0) = COPY $vgpr0_vgpr1
93
138
%1:_(s64) = G_SEXTLOAD %0 :: (load 4, addrspace 0)
94
139
$vgpr0_vgpr1 = COPY %1
0 commit comments