@@ -228,14 +228,8 @@ enum NodeType {
228
228
SREM,
229
229
UREM,
230
230
231
- // Vector-predicated integer binary arithmetic
232
- VP_ADD,
233
- VP_SUB,
234
- VP_MUL,
235
- VP_SDIV,
236
- VP_UDIV,
237
- VP_SREM,
238
- VP_UREM,
231
+ #define BEGIN_REGISTER_VP_SDNODE (VPSDNAME, ...) VPSDNAME,
232
+ #include " llvm/IR/VPIntrinsics.def"
239
233
240
234
// / SMUL_LOHI/UMUL_LOHI - Multiply two integers of type iN, producing
241
235
// / a signed/unsigned value of type i[2*N], and return the full value as
@@ -354,9 +348,6 @@ enum NodeType {
354
348
FDIV,
355
349
FREM,
356
350
357
- // Vector predicated floating point ops.
358
- VP_FADD, VP_FSUB, VP_FMUL, VP_FDIV, VP_FREM,
359
-
360
351
// / Constrained versions of the binary floating point operators.
361
352
// / These will be lowered to the simple operators before final selection.
362
353
// / They are used to limit optimizations while the DAG is being
@@ -441,7 +432,6 @@ enum NodeType {
441
432
442
433
// / FMA - Perform a * b + c with no intermediate rounding step.
443
434
FMA,
444
- VP_FMA,
445
435
446
436
// / FMAD - Perform a * b + c, while getting the same result as the
447
437
// / separately rounded operations.
@@ -532,19 +522,6 @@ enum NodeType {
532
522
// / in terms of the element size of VEC1/VEC2, not in terms of bytes.
533
523
VECTOR_SHUFFLE,
534
524
535
- // / VP_VSHIFT(VEC1, AMOUNT, MASK, VLEN) - Returns a vector, of the same type as
536
- // / VEC1. AMOUNT is an integer value. The returned vector is equivalent
537
- // / to VEC1 shifted by AMOUNT (RETURNED_VEC[idx] = VEC1[idx + AMOUNT]).
538
- VP_VSHIFT,
539
-
540
- // / VP_COMPRESS(VEC1, MASK, VLEN) - Returns a vector, of the same type as
541
- // / VEC1.
542
- VP_COMPRESS,
543
-
544
- // / VP_EXPAND(VEC1, MASK, VLEN) - Returns a vector, of the same type as
545
- // / VEC1.
546
- VP_EXPAND,
547
-
548
525
// / SCALAR_TO_VECTOR(VAL) - This represents the operation of loading a
549
526
// / scalar value into element 0 of the resultant vector type. The top
550
527
// / elements 1 to N-1 of the N-element vector are undefined. The type
@@ -578,9 +555,6 @@ enum NodeType {
578
555
OR,
579
556
XOR,
580
557
581
- // Vector-predicated bitwise operators
582
- VP_AND, VP_OR, VP_XOR,
583
-
584
558
// / ABS - Determine the unsigned absolute value of a signed integer value of
585
559
// / the same bitwidth.
586
560
// / Note: A value of INT_MIN will return INT_MIN, no saturation or overflow
@@ -609,7 +583,6 @@ enum NodeType {
609
583
ROTR,
610
584
FSHL,
611
585
FSHR,
612
- VP_SHL, VP_SRA, VP_SRL,
613
586
614
587
// / Byte Swap and Counting operators.
615
588
BSWAP,
@@ -634,7 +607,6 @@ enum NodeType {
634
607
// / change the condition type in order to match the VSELECT node using a
635
608
// / pattern. The condition follows the BooleanContent format of the target.
636
609
VSELECT,
637
- VP_SELECT,
638
610
639
611
// / Select with condition operator - This selects between a true value and
640
612
// / a false value (ops #2 and #3) based on the boolean result of comparing
@@ -649,7 +621,6 @@ enum NodeType {
649
621
// / them with (op #2) as a CondCodeSDNode. If the operands are vector types
650
622
// / then the result type must also be a vector type.
651
623
SETCC,
652
- VP_SETCC,
653
624
654
625
// / Like SetCC, ops #0 and #1 are the LHS and RHS operands to compare, but
655
626
// / op #2 is a boolean indicating if there is an incoming carry. This
@@ -688,8 +659,6 @@ enum NodeType {
688
659
// / depends on the first letter) to floating point.
689
660
SINT_TO_FP,
690
661
UINT_TO_FP,
691
- VP_SINT_TO_FP,
692
- VP_UINT_TO_FP,
693
662
694
663
// / SIGN_EXTEND_INREG - This operator atomically performs a SHL/SRA pair to
695
664
// / sign extend a small value in a large integer register (e.g. sign
@@ -736,8 +705,6 @@ enum NodeType {
736
705
// / the FP value cannot fit in the integer type, the results are undefined.
737
706
FP_TO_SINT,
738
707
FP_TO_UINT,
739
- VP_FP_TO_SINT,
740
- VP_FP_TO_UINT,
741
708
742
709
// / X = FP_ROUND(Y, TRUNC) - Rounding 'Y' from a larger floating point type
743
710
// / down to the precision of the destination VT. TRUNC is a flag, which is
@@ -763,7 +730,6 @@ enum NodeType {
763
730
764
731
// / X = FP_EXTEND(Y) - Extend a smaller FP type into a larger FP type.
765
732
FP_EXTEND,
766
- VP_FP_EXTEND,
767
733
768
734
// / BITCAST - This operator converts between integer, vector and FP
769
735
// / values, as if the value was stored to memory with one type and loaded
@@ -821,12 +787,6 @@ enum NodeType {
821
787
LRINT,
822
788
LLRINT,
823
789
824
- // Vector-predicated unary floating-point ops
825
- VP_FNEG, VP_FABS, VP_FSQRT, VP_FCBRT, VP_FSIN, VP_FCOS, VP_FPOWI, VP_FPOW,
826
- VP_FLOG, VP_FLOG2, VP_FLOG10, VP_FEXP, VP_FEXP2,
827
- VP_FCEIL, VP_FTRUNC, VP_FRINT, VP_FNEARBYINT, VP_FROUND, VP_FFLOOR,
828
- VP_LROUND, VP_LLROUND, VP_LRINT, VP_LLRINT,
829
-
830
790
// / FMINNUM/FMAXNUM - Perform floating-point minimum or maximum on two
831
791
// / values.
832
792
//
@@ -836,7 +796,6 @@ enum NodeType {
836
796
// / The return value of (FMINNUM 0.0, -0.0) could be either 0.0 or -0.0.
837
797
FMINNUM,
838
798
FMAXNUM,
839
- VP_FMINNUM, VP_FMAXNUM,
840
799
841
800
// / FMINNUM_IEEE/FMAXNUM_IEEE - Perform floating-point minimum or maximum on
842
801
// / two values, following the IEEE-754 2008 definition. This differs from
@@ -1086,7 +1045,6 @@ enum NodeType {
1086
1045
// OutChain = MSTORE(Value, BasePtr, Mask)
1087
1046
MLOAD,
1088
1047
MSTORE,
1089
- VP_LOAD, VP_STORE,
1090
1048
1091
1049
// Masked gather and scatter - load and store operations for a vector of
1092
1050
// random addresses with additional mask operand that prevents memory
@@ -1100,17 +1058,6 @@ enum NodeType {
1100
1058
MGATHER,
1101
1059
MSCATTER,
1102
1060
1103
- // VP gather and scatter - load and store operations for a vector of
1104
- // random addresses with additional mask and vector length operand that
1105
- // prevents memory accesses to the masked-off lanes.
1106
- //
1107
- // Val, OutChain = VP_GATHER(InChain, BasePtr, Index, Scale, Mask, EVL)
1108
- // OutChain = VP_SCATTER(InChain, Value, BasePtr, Index, Scale, Mask, EVL)
1109
- //
1110
- // The Index operand can have more vector elements than the other operands
1111
- // due to type legalization. The extra elements are ignored.
1112
- VP_GATHER, VP_SCATTER,
1113
-
1114
1061
// / This corresponds to the llvm.lifetime.* intrinsics. The first operand
1115
1062
// / is the chain and the second operand is the alloca pointer.
1116
1063
LIFETIME_START,
@@ -1143,7 +1090,6 @@ enum NodeType {
1143
1090
// / is the vector to reduce.
1144
1091
VECREDUCE_STRICT_FADD,
1145
1092
VECREDUCE_STRICT_FMUL,
1146
- VP_REDUCE_STRICT_FADD, VP_REDUCE_STRICT_FMUL,
1147
1093
1148
1094
// / These reductions are non-strict, and have a single vector operand.
1149
1095
VECREDUCE_FADD,
@@ -1164,23 +1110,6 @@ enum NodeType {
1164
1110
VECREDUCE_UMAX,
1165
1111
VECREDUCE_UMIN,
1166
1112
1167
- // Vector-predicated reduction operators
1168
- VP_REDUCE_FADD,
1169
- VP_REDUCE_FMUL,
1170
- VP_REDUCE_ADD,
1171
- VP_REDUCE_MUL,
1172
- VP_REDUCE_AND,
1173
- VP_REDUCE_OR,
1174
- VP_REDUCE_XOR,
1175
- VP_REDUCE_SMAX,
1176
- VP_REDUCE_SMIN,
1177
- VP_REDUCE_UMAX,
1178
- VP_REDUCE_UMIN,
1179
-
1180
- // / FMIN/FMAX nodes can have flags, for NaN/NoNaN variants.
1181
- VP_REDUCE_FMAX,
1182
- VP_REDUCE_FMIN,
1183
-
1184
1113
// / BUILTIN_OP_END - This must be the last enum value in this list.
1185
1114
// / The target-specific pre-isel opcode values start here.
1186
1115
BUILTIN_OP_END
0 commit comments