Skip to content

Commit 96cabf8

Browse files
authored
update llvm to 8da49032 (Xilinx#1953)
1 parent cf39e18 commit 96cabf8

File tree

5 files changed

+79
-72
lines changed

5 files changed

+79
-72
lines changed

include/aie/Dialect/AIEVec/AIE1/IR/AIEVecAIE1Ops.td

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def AIEVecAIE1_AddOp:
3636
AIEVecAIE1_Op<"add", [
3737
Pure
3838
]>,
39-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs,
39+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs,
4040
DefaultValuedStrAttr<StrAttr, "">:$xstart,
4141
DefaultValuedStrAttr<StrAttr, "">:$xoffsets,
4242
DefaultValuedStrAttr<StrAttr, "">:$xoffsets_hi,
@@ -45,7 +45,7 @@ def AIEVecAIE1_AddOp:
4545
DefaultValuedStrAttr<StrAttr, "">:$zoffsets,
4646
DefaultValuedStrAttr<StrAttr, "">:$zoffsets_hi,
4747
DefaultValuedStrAttr<StrAttr, "">:$zsquare)>,
48-
Results<(outs AnyVector:$result)> {
48+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
4949
let summary = "AIE1 vector add";
5050
let description = [{
5151
AMD-specific advanced add operation that adds two 1-D vectors
@@ -78,7 +78,7 @@ def AIEVecAIE1_SubOp:
7878
AIEVecAIE1_Op<"sub", [
7979
Pure
8080
]>,
81-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs,
81+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs,
8282
DefaultValuedStrAttr<StrAttr, "">:$xstart,
8383
DefaultValuedStrAttr<StrAttr, "">:$xoffsets,
8484
DefaultValuedStrAttr<StrAttr, "">:$xoffsets_hi,
@@ -87,7 +87,7 @@ def AIEVecAIE1_SubOp:
8787
DefaultValuedStrAttr<StrAttr, "">:$zoffsets,
8888
DefaultValuedStrAttr<StrAttr, "">:$zoffsets_hi,
8989
DefaultValuedStrAttr<StrAttr, "">:$zsquare)>,
90-
Results<(outs AnyVector:$result)> {
90+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
9191
let summary = "AIE1 vector subtract";
9292
let description = [{
9393
AMD-specific advanced sub operation that subtracts two 1-D vectors
@@ -120,7 +120,7 @@ def AIEVecAIE1_MulOp:
120120
AIEVecAIE1_Op<"mul", [
121121
Pure
122122
]>,
123-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs,
123+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs,
124124
DefaultValuedStrAttr<StrAttr, "">:$xstart,
125125
DefaultValuedStrAttr<StrAttr, "">:$xoffsets,
126126
DefaultValuedStrAttr<StrAttr, "">:$xoffsets_hi,
@@ -131,7 +131,7 @@ def AIEVecAIE1_MulOp:
131131
DefaultValuedStrAttr<StrAttr, "">:$zoffsets_hi,
132132
DefaultValuedStrAttr<StrAttr, "">:$zstep,
133133
DefaultValuedStrAttr<StrAttr, "">:$zsquare)>,
134-
Results<(outs AnyVector:$result)> {
134+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
135135
let summary = "AIE vector multiply";
136136
let description = [{
137137
AMD-specific multiply operation that multiplies two 1-D vectors.
@@ -184,7 +184,8 @@ def AIEVecAIE1_FMAOp :
184184
AIEVecAIE1_Op<"mac", [
185185
Pure
186186
]>,
187-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs, AnyVector:$acc,
187+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs,
188+
AnyVectorOfNonZeroRank:$acc,
188189
DefaultValuedStrAttr<StrAttr, "">:$xstart,
189190
DefaultValuedStrAttr<StrAttr, "">:$xoffsets,
190191
DefaultValuedStrAttr<StrAttr, "">:$xoffsets_hi,
@@ -196,7 +197,7 @@ def AIEVecAIE1_FMAOp :
196197
DefaultValuedStrAttr<StrAttr, "">:$zstep,
197198
DefaultValuedStrAttr<StrAttr, "">:$zsquare,
198199
DefaultValuedAttr<BoolAttr, "false">:$fmsub)>,
199-
Results<(outs AnyVector:$result)> {
200+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
200201
let summary = "AIE vector fused multiply-add";
201202
let description = [{
202203
AMD-specific multiply-add operation. It multiplies two 1-D vectors,
@@ -255,7 +256,7 @@ def AIEVecAIE1_SelectOp:
255256
AIEVecAIE1_Op<"select", [
256257
Pure
257258
]>,
258-
Arguments<(ins AnyVector:$xbuff,
259+
Arguments<(ins AnyVectorOfNonZeroRank:$xbuff,
259260
DefaultValuedStrAttr<StrAttr, "">:$select,
260261
DefaultValuedStrAttr<StrAttr, "">:$xstart,
261262
DefaultValuedStrAttr<StrAttr, "">:$xoffsets,
@@ -265,8 +266,8 @@ def AIEVecAIE1_SelectOp:
265266
DefaultValuedStrAttr<StrAttr, "">:$yoffsets,
266267
DefaultValuedStrAttr<StrAttr, "">:$yoffsets_hi,
267268
DefaultValuedStrAttr<StrAttr, "">:$ysquare,
268-
Optional<AnyVector>:$ybuff)>,
269-
Results<(outs AnyVector:$result)> {
269+
Optional<AnyVectorOfNonZeroRank>:$ybuff)>,
270+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
270271
let summary = "AIE vector lane selection";
271272
let description = [{
272273
AMD-specific vector lane selection operation. It selects between the
@@ -313,9 +314,9 @@ def AIEVecAIE1_ExtOp:
313314
AIEVecAIE1_Op<"ext", [
314315
Pure
315316
]>,
316-
Arguments<(ins AnyVector:$source,
317+
Arguments<(ins AnyVectorOfNonZeroRank:$source,
317318
ConfinedAttr<AIEI8Attr, [IntMinValue<0>, IntMaxValue<8>]>:$index)>,
318-
Results<(outs AnyVector:$result)> {
319+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
319320
let summary = "AIE ext";
320321
let description = [{
321322
AMD-specific vector extract intrinsic. Selects contiguous lanes from

include/aie/Dialect/AIEVec/IR/AIEVecOps.td

Lines changed: 50 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ def AIEVec_AddElemOp:
4040
Pure,
4141
AllTypesMatch<["lhs", "rhs", "result"]>
4242
]>,
43-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs)>,
44-
Results<(outs AnyVector:$result)> {
43+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs)>,
44+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
4545
let summary = "AIE vector add elem";
4646
let description = [{
4747
AMD-specific AIE2 intrinsic that allows you to perform addition operation
@@ -57,8 +57,8 @@ def AIEVec_SubElemOp:
5757
Pure,
5858
AllTypesMatch<["lhs", "rhs", "result"]>
5959
]>,
60-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs)>,
61-
Results<(outs AnyVector:$result)> {
60+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs)>,
61+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
6262
let summary = "AIE vector sub elem";
6363
let description = [{
6464
AMD-specific AIE2 intrinsic that allows you to perform substraction operation
@@ -73,9 +73,10 @@ def AIEVec_FMAElemOp :
7373
AIEVec_Op<"mac_elem", [
7474
Pure
7575
]>,
76-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs, AnyVector:$acc,
76+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs,
77+
AnyVectorOfNonZeroRank:$acc,
7778
DefaultValuedAttr<BoolAttr, "false">:$fmsub)>,
78-
Results<(outs AnyVector:$result)> {
79+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
7980
let summary = "AIE2 element-wise vector fused multiply-add";
8081
let description = [{
8182
AMD-specific multiply-add operation. It multiplies two 1-D vectors in the same channel,
@@ -130,9 +131,9 @@ def AIEVec_BroadcastOp:
130131
AIEVec_Op<"broadcast", [
131132
Pure
132133
]>,
133-
Arguments<(ins AnyVector:$source,
134+
Arguments<(ins AnyVectorOfNonZeroRank:$source,
134135
DefaultValuedAttr<ConfinedAttr<AIEI8Attr, [IntNonNegative]>, "0">:$idx)>,
135-
Results<(outs AnyVector:$result)> {
136+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
136137
let summary = "AIE2 broadcast";
137138
let description = [{
138139
AMD-specific broadcast intrinsic. Extract element index from vector and broadcasts its
@@ -150,7 +151,7 @@ def AIEVec_BroadcastScalarOp:
150151
Pure
151152
]>,
152153
Arguments<(ins AnyTypeOf<[BF16, F32, I32, I16, I8]>:$source)>,
153-
Results<(outs AnyVector:$result)> {
154+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
154155
let summary = "AIE2 broadcast scalar";
155156
let description = [{
156157
AMD-specific broadcast scalar intrinsic. Broadcasts input value to all vector lanes.
@@ -166,9 +167,9 @@ def AIEVec_UPSOp:
166167
AIEVec_Op<"ups", [
167168
Pure
168169
]>,
169-
Arguments<(ins AnyVector:$source,
170+
Arguments<(ins AnyVectorOfNonZeroRank:$source,
170171
DefaultValuedAttr<ConfinedAttr<AIEI8Attr, [IntNonNegative]>, "0">:$shift)>,
171-
Results<(outs AnyVector:$result)> {
172+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
172173
let summary = "AIE ups";
173174
let description = [{
174175
AMD-specific upshift intrinsic. Moves data from AIE vector data type
@@ -187,8 +188,9 @@ def AIEVec_CastOp:
187188
AIEVec_Op<"cast", [
188189
Pure
189190
]>,
190-
Arguments<(ins AnyVector:$source, DefaultValuedAttr<BoolAttr, "false">:$isResAcc)>,
191-
Results<(outs AnyVector:$result)> {
191+
Arguments<(ins AnyVectorOfNonZeroRank:$source,
192+
DefaultValuedAttr<BoolAttr, "false">:$isResAcc)>,
193+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
192194
let summary = "AIE cast";
193195
let description = [{
194196
AIE2 cast intrinsic. Cast values from source data type to result data types.
@@ -205,8 +207,8 @@ def AIEVec_SRSOp:
205207
AIEVec_Op<"srs", [
206208
Pure
207209
]>,
208-
Arguments<(ins AnyVector:$source, AnyInteger:$shift)>,
209-
Results<(outs AnyVector:$result)> {
210+
Arguments<(ins AnyVectorOfNonZeroRank:$source, AnyInteger:$shift)>,
211+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
210212
let summary = "AIE srs";
211213
let description = [{
212214
AMD-specific shift-round-saturate intrinsic. Moves values from
@@ -227,8 +229,8 @@ def AIEVec_UPDOp:
227229
DefaultValuedAttr<AIEI32Attr, "0">:$offset,
228230
DefaultValuedAttr<ConfinedAttr<AIEI8Attr,
229231
[IntMinValue<0>, IntMaxValue<1>]>, "0">:$index,
230-
Optional<AnyVector>:$vector)>,
231-
Results<(outs AnyVector:$result)> {
232+
Optional<AnyVectorOfNonZeroRank>:$vector)>,
233+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
232234
let summary = "AIE upd";
233235
let description = [{
234236
AMD-specific update intrinsic. General upd intrinsic updates contiguous
@@ -250,8 +252,8 @@ def AIEVec_ConcatOp:
250252
AIEVec_Op<"concat", [
251253
Pure, InferTypeOpAdaptor,
252254
]>,
253-
Arguments<(ins Variadic<AnyVector>:$sources)>,
254-
Results<(outs AnyVector:$result)> {
255+
Arguments<(ins Variadic<AnyVectorOfNonZeroRank>:$sources)>,
256+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
255257
let summary = "AIE concat";
256258
let description = [{
257259
AMD-specific concat intrinsic. Concatenates two or more smaller
@@ -265,9 +267,9 @@ def AIEVec_ExtOp:
265267
AIEVec_Op<"ext", [
266268
Pure
267269
]>,
268-
Arguments<(ins AnyVector:$source,
270+
Arguments<(ins AnyVectorOfNonZeroRank:$source,
269271
ConfinedAttr<AIEI8Attr, [IntMinValue<0>, IntMaxValue<8>]>:$index)>,
270-
Results<(outs AnyVector:$result)> {
272+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
271273
let summary = "AIE ext";
272274
let description = [{
273275
AMD-specific vector extract intrinsic. Selects contiguous lanes from
@@ -285,8 +287,8 @@ def AIEVec_PackOp:
285287
AIEVec_Op<"pack", [
286288
Pure
287289
]>,
288-
Arguments<(ins AnyVector:$source)>,
289-
Results<(outs AnyVector:$result)> {
290+
Arguments<(ins AnyVectorOfNonZeroRank:$source)>,
291+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
290292
let summary = "AIE pack";
291293
let description = [{
292294
AMD-specific pack intrinsic. Pack a vector of 16-bit values into
@@ -299,8 +301,8 @@ def AIEVec_UnpackOp:
299301
AIEVec_Op<"unpack", [
300302
Pure
301303
]>,
302-
Arguments<(ins AnyVector:$source)>,
303-
Results<(outs AnyVector:$result)> {
304+
Arguments<(ins AnyVectorOfNonZeroRank:$source)>,
305+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
304306
let summary = "AIE unpack";
305307
let description = [{
306308
AMD-specific unpack intrinsic. Unpack a vector of 8-bit values into
@@ -313,8 +315,9 @@ def AIEVec_ShiftOp:
313315
AIEVec_Op<"shift", [
314316
Pure
315317
]>,
316-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs, I32:$shift, DefaultValuedAttr<BoolAttr, "false">:$isAcc)>,
317-
Results<(outs AnyVector:$result)> {
318+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs,
319+
I32:$shift, DefaultValuedAttr<BoolAttr, "false">:$isAcc)>,
320+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
318321
let summary = "AIE2 concat and shift";
319322
let description = [{
320323
AMD-specific shift intrinsic. Concatenates two
@@ -330,9 +333,9 @@ def AIEVec_LegacyShuffleOp:
330333
AIEVec_Op<"legacyshuffle", [
331334
Pure
332335
]>,
333-
Arguments<(ins AnyVector:$source,
336+
Arguments<(ins AnyVectorOfNonZeroRank:$source,
334337
DefaultValuedAttr<AIEI32Attr, "0">:$mode)>,
335-
Results<(outs AnyVector:$result)> {
338+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
336339
let summary = "AIE2 shuffle";
337340
let description = [{
338341
AMD-specific vector shuffle intrinsic by a specific shuffle mode.
@@ -344,10 +347,10 @@ def AIEVec_MulConvOp:
344347
AIEVec_Op<"mul_conv", [
345348
Pure
346349
]>,
347-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs,
350+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs,
348351
DefaultValuedAttr<AIEI32Attr, "0">:$M,
349352
DefaultValuedAttr<AIEI32Attr, "0">:$N)>,
350-
Results<(outs AnyVector:$result)> {
353+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
351354
let summary = "AIE2 multiply convolution";
352355
let description = [{
353356
AMD-specific multiply convolution intrinsic. Multiply convolution operation
@@ -365,11 +368,12 @@ def AIEVec_FMAConvOp:
365368
AIEVec_Op<"fma_conv", [
366369
Pure
367370
]>,
368-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs, AnyVector:$acc,
371+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs,
372+
AnyVectorOfNonZeroRank:$acc,
369373
DefaultValuedAttr<AIEI32Attr, "0">:$M,
370374
DefaultValuedAttr<AIEI32Attr, "0">:$N,
371375
DefaultValuedAttr<BoolAttr, "false">:$fmsub)>,
372-
Results<(outs AnyVector:$result)> {
376+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
373377
let summary = "AIE2 multiply accumulate convolution";
374378
let description = [{
375379
AMD-specific multiply accumulate convolution intrinsic. Multiply accumulate convolution
@@ -388,8 +392,8 @@ def AIEVec_MinOp:
388392
Pure,
389393
AllTypesMatch<["lhs", "rhs", "result"]>
390394
]>,
391-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs)>,
392-
Results<(outs AnyVector:$result)> {
395+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs)>,
396+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
393397
let summary = "AIE vector minimum";
394398
let description = [{
395399
AMD-specific intrinsic that calculates the minimum between two input vectors.
@@ -404,8 +408,8 @@ def AIEVec_MaxOp:
404408
Pure,
405409
AllTypesMatch<["lhs", "rhs", "result"]>
406410
]>,
407-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs)>,
408-
Results<(outs AnyVector:$result)> {
411+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs)>,
412+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
409413
let summary = "AIE vector maximum";
410414
let description = [{
411415
AMD-specific intrinsic that calculates the maximum between two input vectors.
@@ -420,7 +424,8 @@ def AIEVec_CmpOp:
420424
Pure,
421425
AllTypesMatch<["lhs", "rhs"]>
422426
]>,
423-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs, DefaultValuedStrAttr<StrAttr, "">:$pred)>,
427+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs,
428+
DefaultValuedStrAttr<StrAttr, "">:$pred)>,
424429
Results<(outs AnyUnsignedInteger:$result)> {
425430
let summary = "AIE vector comparison";
426431
let description = [{
@@ -449,8 +454,9 @@ def AIEVec_SelOp:
449454
Pure,
450455
AllTypesMatch<["lhs", "rhs", "result"]>
451456
]>,
452-
Arguments<(ins AnyVector:$lhs, AnyVector:$rhs, AnyUnsignedInteger:$sel)>,
453-
Results<(outs AnyVector:$result)> {
457+
Arguments<(ins AnyVectorOfNonZeroRank:$lhs, AnyVectorOfNonZeroRank:$rhs,
458+
AnyUnsignedInteger:$sel)>,
459+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
454460
let summary = "AIE vector lane wise selection";
455461
let description = [{
456462
AMD-specific intrinsic that performs lane wise selection between two input vectors, if a bit of sel is zero, the lane of vector lhs is selected, else the lane of vector rhs is selected.
@@ -465,7 +471,7 @@ def AIEVec_ExtElemOp:
465471
Pure,
466472
AllElementTypesMatch<["source", "result"]>
467473
]>,
468-
Arguments<(ins AnyVector:$source, I32:$index)>,
474+
Arguments<(ins AnyVectorOfNonZeroRank:$source, I32:$index)>,
469475
Results<(outs AnyTypeOf<[BF16, F32, I32, I16, I8]>:$result)> {
470476
let summary = "AIE extract element";
471477
let description =
@@ -481,8 +487,8 @@ def AIEVec_NegOp:
481487
Pure,
482488
AllTypesMatch<["source", "result"]>
483489
]>,
484-
Arguments<(ins AnyVector:$source)>,
485-
Results<(outs AnyVector:$result)> {
490+
Arguments<(ins AnyVectorOfNonZeroRank:$source)>,
491+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
486492
let summary = "AIE vector negative";
487493
let description = [{
488494
AMD-specific intrinsic that negates the vector and returns the result.
@@ -622,7 +628,7 @@ def AIEVec_ShuffleOp : AIEVec_Op<"shuffle",
622628
512, [I8, I16, I32, I64, I128, I256,
623629
I512, BF16, F32]>>:$rhs,
624630
AIEVec_ShuffleModeAttr:$mode)>,
625-
Results<(outs AnyVector:$result)> {
631+
Results<(outs AnyVectorOfNonZeroRank:$result)> {
626632
let summary = "AIE2 shuffle";
627633
let description = [{
628634
AMD AIEv2-specific vector shuffle. It performs a shuffle of the elements of

include/aie/Dialect/AIEVec/IR/AIEVecTypeConstraints.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class ShapedTypeBitWidth<string name> :
4747
# !subst(".getType()", "", ElementCount<name>.result) # ")">;
4848

4949
class VectorOfBitWidthAndElementTypes<int bitwidth, list<Type> allowedTypes> :
50-
Type<And<[VectorOf<allowedTypes>.predicate,
50+
Type<And<[VectorOfNonZeroRankOf<allowedTypes>.predicate,
5151
CPred<ShapedTypeBitWidth<"_self">.result # " == " # bitwidth>]>,
5252
bitwidth # "-bit wide vector, of " # AnyTypeOf<allowedTypes>.summary>;
5353

0 commit comments

Comments
 (0)