forked from OSchip/llvm-project
[Clang] [TableGen] Clean up !if(!eq(bool, 1) and related booleans
Differential Revision: https://reviews.llvm.org/D89893
This commit is contained in:
parent
794dc7ad26
commit
e4b4543ff0
|
@ -406,7 +406,7 @@ def vabdq: Intrinsic<Vector, (args Vector:$a, Vector:$b),
|
|||
}
|
||||
|
||||
multiclass VectorVectorArithmetic<string operation, dag extraArgs = (?),
|
||||
int wantXVariant = 1> {
|
||||
bit wantXVariant = 1> {
|
||||
defm "" : IntrinsicMX<
|
||||
Vector, (args Vector:$a, Vector:$b, Predicate:$pred),
|
||||
!con((IRInt<operation, [Vector, Predicate]> $a, $b),
|
||||
|
@ -415,7 +415,7 @@ multiclass VectorVectorArithmetic<string operation, dag extraArgs = (?),
|
|||
|
||||
multiclass VectorScalarArithmetic<string operation, string basename,
|
||||
dag extraArgs = (?),
|
||||
int wantXVariant = 1> {
|
||||
bit wantXVariant = 1> {
|
||||
defm "" : IntrinsicMXNameOverride<
|
||||
Vector, (args Vector:$a, unpromoted<Scalar>:$b, Predicate:$pred),
|
||||
!con((IRInt<operation, [Vector, Predicate]> $a, (splat $b)),
|
||||
|
@ -451,7 +451,7 @@ let params = T.Usual in {
|
|||
}
|
||||
|
||||
multiclass DblVectorVectorArithmetic<string operation, dag extraArgs = (?),
|
||||
int wantXVariant = 1> {
|
||||
bit wantXVariant = 1> {
|
||||
defm "" : IntrinsicMX<
|
||||
DblVector, (args Vector:$a, Vector:$b, DblPredicate:$pred),
|
||||
!con((IRInt<operation, [DblVector, Vector, DblPredicate]> $a, $b),
|
||||
|
@ -460,7 +460,7 @@ multiclass DblVectorVectorArithmetic<string operation, dag extraArgs = (?),
|
|||
|
||||
multiclass DblVectorScalarArithmetic<string operation, string basename,
|
||||
dag extraArgs = (?),
|
||||
int wantXVariant = 1> {
|
||||
bit wantXVariant = 1> {
|
||||
defm "" : IntrinsicMXNameOverride<
|
||||
DblVector, (args Vector:$a, unpromoted<Scalar>:$b, DblPredicate:$pred),
|
||||
!con((IRInt<operation, [DblVector, Vector, DblPredicate]> $a, (splat $b)),
|
||||
|
|
|
@ -519,7 +519,7 @@ class NameOverride<string basename_> {
|
|||
// polymorph differently (typically because the type of the inactive
|
||||
// parameter can be used as a disambiguator if it's present).
|
||||
multiclass IntrinsicMX<Type rettype, dag arguments, dag cg,
|
||||
int wantXVariant = 1,
|
||||
bit wantXVariant = 1,
|
||||
string nameSuffix = "",
|
||||
PolymorphicNameType pnt_m = PNT_Type,
|
||||
PolymorphicNameType pnt_x = PNT_Type> {
|
||||
|
@ -532,7 +532,7 @@ multiclass IntrinsicMX<Type rettype, dag arguments, dag cg,
|
|||
let pnt = pnt_m;
|
||||
}
|
||||
|
||||
foreach unusedVar = !if(!eq(wantXVariant, 1), [1], []<int>) in {
|
||||
if wantXVariant then {
|
||||
// The _x variant leaves off that parameter, and simply uses an
|
||||
// undef value of the same type.
|
||||
|
||||
|
@ -546,7 +546,7 @@ multiclass IntrinsicMX<Type rettype, dag arguments, dag cg,
|
|||
// Same as above, but with an additional parameter 'basename' which overrides
|
||||
// the C intrinsic base name
|
||||
multiclass IntrinsicMXNameOverride<Type rettype, dag arguments, dag cg,
|
||||
string basename, int wantXVariant = 1,
|
||||
string basename, bit wantXVariant = 1,
|
||||
string nameSuffix = "",
|
||||
PolymorphicNameType pnt_m = PNT_Type,
|
||||
PolymorphicNameType pnt_x = PNT_Type> {
|
||||
|
@ -556,7 +556,7 @@ multiclass IntrinsicMXNameOverride<Type rettype, dag arguments, dag cg,
|
|||
let pnt = pnt_m;
|
||||
}
|
||||
|
||||
foreach unusedVar = !if(!eq(wantXVariant, 1), [1], []<int>) in {
|
||||
if wantXVariant then {
|
||||
def "_x" # nameSuffix:
|
||||
Intrinsic<rettype, arguments, (seq (undef rettype):$inactive, cg)>,
|
||||
NameOverride<basename # "_x" # nameSuffix> {
|
||||
|
|
Loading…
Reference in New Issue