@@ -48,6 +48,30 @@ entry:
48
48
ret i64 %2
49
49
}
50
50
51
+ define i32 @vsetvli_and17_i32 () nounwind {
52
+ ; CHECK-LABEL: @vsetvli_and17_i32(
53
+ ; CHECK-NEXT: entry:
54
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i32 @llvm.riscv.vsetvli.i32(i32 1, i32 1, i32 1)
55
+ ; CHECK-NEXT: ret i32 [[TMP0]]
56
+ ;
57
+ entry:
58
+ %0 = call i32 @llvm.riscv.vsetvli.i32 (i32 1 , i32 1 , i32 1 )
59
+ %1 = and i32 %0 , 131071
60
+ ret i32 %1
61
+ }
62
+
63
+ define i64 @vsetvli_and17_i64 () nounwind {
64
+ ; CHECK-LABEL: @vsetvli_and17_i64(
65
+ ; CHECK-NEXT: entry:
66
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i64 @llvm.riscv.vsetvli.i64(i64 1, i64 1, i64 1)
67
+ ; CHECK-NEXT: ret i64 [[TMP0]]
68
+ ;
69
+ entry:
70
+ %0 = call i64 @llvm.riscv.vsetvli.i64 (i64 1 , i64 1 , i64 1 )
71
+ %1 = and i64 %0 , 131071
72
+ ret i64 %1
73
+ }
74
+
51
75
define i32 @vsetvlimax_i32 () nounwind {
52
76
; CHECK-LABEL: @vsetvlimax_i32(
53
77
; CHECK-NEXT: entry:
@@ -86,6 +110,30 @@ entry:
86
110
ret i64 %2
87
111
}
88
112
113
+ define i32 @vsetvlimax_and17_i32 () nounwind {
114
+ ; CHECK-LABEL: @vsetvlimax_and17_i32(
115
+ ; CHECK-NEXT: entry:
116
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i32 @llvm.riscv.vsetvlimax.i32(i32 1, i32 1)
117
+ ; CHECK-NEXT: ret i32 [[TMP0]]
118
+ ;
119
+ entry:
120
+ %0 = call i32 @llvm.riscv.vsetvlimax.i32 (i32 1 , i32 1 )
121
+ %1 = and i32 %0 , 131071
122
+ ret i32 %1
123
+ }
124
+
125
+ define i64 @vsetvlimax_and17_i64 () nounwind {
126
+ ; CHECK-LABEL: @vsetvlimax_and17_i64(
127
+ ; CHECK-NEXT: entry:
128
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i64 @llvm.riscv.vsetvlimax.i64(i64 1, i64 1)
129
+ ; CHECK-NEXT: ret i64 [[TMP0]]
130
+ ;
131
+ entry:
132
+ %0 = call i64 @llvm.riscv.vsetvlimax.i64 (i64 1 , i64 1 )
133
+ %1 = and i64 %0 , 131071
134
+ ret i64 %1
135
+ }
136
+
89
137
define i32 @vsetvli_opt_i32 () nounwind {
90
138
; CHECK-LABEL: @vsetvli_opt_i32(
91
139
; CHECK-NEXT: entry:
@@ -124,6 +172,30 @@ entry:
124
172
ret i64 %2
125
173
}
126
174
175
+ define i32 @vsetvli_opt_and17_i32 () nounwind {
176
+ ; CHECK-LABEL: @vsetvli_opt_and17_i32(
177
+ ; CHECK-NEXT: entry:
178
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i32 @llvm.riscv.vsetvli.opt.i32(i32 1, i32 1, i32 1)
179
+ ; CHECK-NEXT: ret i32 [[TMP0]]
180
+ ;
181
+ entry:
182
+ %0 = call i32 @llvm.riscv.vsetvli.opt.i32 (i32 1 , i32 1 , i32 1 )
183
+ %1 = and i32 %0 , 131071
184
+ ret i32 %1
185
+ }
186
+
187
+ define i64 @vsetvli_opt_and17_i64 () nounwind {
188
+ ; CHECK-LABEL: @vsetvli_opt_and17_i64(
189
+ ; CHECK-NEXT: entry:
190
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i64 @llvm.riscv.vsetvli.opt.i64(i64 1, i64 1, i64 1)
191
+ ; CHECK-NEXT: ret i64 [[TMP0]]
192
+ ;
193
+ entry:
194
+ %0 = call i64 @llvm.riscv.vsetvli.opt.i64 (i64 1 , i64 1 , i64 1 )
195
+ %1 = and i64 %0 , 131071
196
+ ret i64 %1
197
+ }
198
+
127
199
define i32 @vsetvlimax_opt_i32 () nounwind {
128
200
; CHECK-LABEL: @vsetvlimax_opt_i32(
129
201
; CHECK-NEXT: entry:
@@ -161,3 +233,27 @@ entry:
161
233
%2 = zext i32 %1 to i64
162
234
ret i64 %2
163
235
}
236
+
237
+ define i32 @vsetvlimax_opt_and17_i32 () nounwind {
238
+ ; CHECK-LABEL: @vsetvlimax_opt_and17_i32(
239
+ ; CHECK-NEXT: entry:
240
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i32 @llvm.riscv.vsetvlimax.opt.i32(i32 1, i32 1)
241
+ ; CHECK-NEXT: ret i32 [[TMP0]]
242
+ ;
243
+ entry:
244
+ %0 = call i32 @llvm.riscv.vsetvlimax.opt.i32 (i32 1 , i32 1 )
245
+ %1 = and i32 %0 , 131071
246
+ ret i32 %1
247
+ }
248
+
249
+ define i64 @vsetvlimax_opt_and17_i64 () nounwind {
250
+ ; CHECK-LABEL: @vsetvlimax_opt_and17_i64(
251
+ ; CHECK-NEXT: entry:
252
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i64 @llvm.riscv.vsetvlimax.opt.i64(i64 1, i64 1)
253
+ ; CHECK-NEXT: ret i64 [[TMP0]]
254
+ ;
255
+ entry:
256
+ %0 = call i64 @llvm.riscv.vsetvlimax.opt.i64 (i64 1 , i64 1 )
257
+ %1 = and i64 %0 , 131071
258
+ ret i64 %1
259
+ }
0 commit comments