-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[NFC][DirectX] Clean-up of DXIL.td
#124005
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@llvm/pr-subscribers-backend-directx Author: Finn Plummer (inbelic) Changes
This is a small cleanup moved to be separate from #115912 was merged](#117072) for reviewability. Patch is 33.60 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/124005.diff 1 Files Affected:
diff --git a/llvm/lib/Target/DirectX/DXIL.td b/llvm/lib/Target/DirectX/DXIL.td
index beb9b56dba30aa..8f1586a9828f36 100644
--- a/llvm/lib/Target/DirectX/DXIL.td
+++ b/llvm/lib/Target/DirectX/DXIL.td
@@ -235,7 +235,7 @@ defset list<DXILOpClass> OpClasses = {
def writeSamplerFeedback : DXILOpClass;
def writeSamplerFeedbackBias : DXILOpClass;
def writeSamplerFeedbackGrad : DXILOpClass;
- def writeSamplerFeedbackLevel: DXILOpClass;
+ def writeSamplerFeedbackLevel : DXILOpClass;
// This is a sentinel definition. Hence placed at the end here and
// not as part of the above alphabetically sorted valid definitions.
@@ -307,34 +307,35 @@ class Attributes<Version ver = DXIL1_0, list<DXILAttribute> attrs> {
list<DXILAttribute> fn_attrs = attrs;
}
-defvar BarrierMode_DeviceMemoryBarrier = 2;
+defvar BarrierMode_DeviceMemoryBarrier = 2;
defvar BarrierMode_DeviceMemoryBarrierWithGroupSync = 3;
-defvar BarrierMode_GroupMemoryBarrier = 8;
-defvar BarrierMode_GroupMemoryBarrierWithGroupSync = 9;
-defvar BarrierMode_AllMemoryBarrier = 10;
-defvar BarrierMode_AllMemoryBarrierWithGroupSync = 11;
+defvar BarrierMode_GroupMemoryBarrier = 8;
+defvar BarrierMode_GroupMemoryBarrierWithGroupSync = 9;
+defvar BarrierMode_AllMemoryBarrier = 10;
+defvar BarrierMode_AllMemoryBarrierWithGroupSync = 11;
-defvar WaveOpKind_Sum = 0;
+defvar WaveOpKind_Sum = 0;
defvar WaveOpKind_Product = 1;
-defvar WaveOpKind_Min = 2;
-defvar WaveOpKind_Max = 3;
+defvar WaveOpKind_Min = 2;
+defvar WaveOpKind_Max = 3;
-defvar SignedOpKind_Signed = 0;
+defvar SignedOpKind_Signed = 0;
defvar SignedOpKind_Unsigned = 1;
// Intrinsic arg selection
class IntrinArgSelectType;
def IntrinArgSelect_Index : IntrinArgSelectType;
-def IntrinArgSelect_I8 : IntrinArgSelectType;
-def IntrinArgSelect_I32 : IntrinArgSelectType;
+def IntrinArgSelect_I8 : IntrinArgSelectType;
+def IntrinArgSelect_I32 : IntrinArgSelectType;
class IntrinArgSelect<IntrinArgSelectType type_, int value_> {
IntrinArgSelectType type = type_;
int value = value_;
-}
+};
+
class IntrinArgIndex<int index> : IntrinArgSelect<IntrinArgSelect_Index, index>;
-class IntrinArgI8 <int value> : IntrinArgSelect<IntrinArgSelect_I8, value>;
-class IntrinArgI32 <int value> : IntrinArgSelect<IntrinArgSelect_I32, value>;
+class IntrinArgI8<int value> : IntrinArgSelect<IntrinArgSelect_I8, value>;
+class IntrinArgI32<int value> : IntrinArgSelect<IntrinArgSelect_I32, value>;
// Select which intrinsic to lower from for a DXILOp.
// If the intrinsic is the only argument given to IntrinSelect, then the
@@ -364,7 +365,8 @@ class IntrinArgI32 <int value> : IntrinArgSelect<IntrinArgSelect_I32, value>;
// >,
// ]
//
-class IntrinSelect<Intrinsic intrinsic_, list<IntrinArgSelect> arg_selects_=[]> {
+class IntrinSelect<Intrinsic intrinsic_,
+ list<IntrinArgSelect> arg_selects_ = []> {
Intrinsic intrinsic = intrinsic_;
list<IntrinArgSelect> arg_selects = arg_selects_;
}
@@ -403,10 +405,12 @@ class DXILOp<int opcode, DXILOpClass opclass> {
}
// Concrete definitions of DXIL Operations
+//
+// This are sorted by ascending value of the DXIL Opcodes
-def Abs : DXILOp<6, unary> {
+def Abs : DXILOp<6, unary> {
let Doc = "Returns the absolute value of the input.";
- let intrinsics = [ IntrinSelect<int_fabs> ];
+ let intrinsics = [IntrinSelect<int_fabs>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy, DoubleTy]>];
@@ -414,9 +418,10 @@ def Abs : DXILOp<6, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Saturate : DXILOp<7, unary> {
- let Doc = "Clamps a single or double precision floating point value to [0.0f...1.0f].";
- let intrinsics = [ IntrinSelect<int_dx_saturate> ];
+def Saturate : DXILOp<7, unary> {
+ let Doc = "Clamps a single or double precision floating point value to "
+ "[0.0f...1.0f].";
+ let intrinsics = [IntrinSelect<int_dx_saturate>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy, DoubleTy]>];
@@ -424,9 +429,9 @@ def Saturate : DXILOp<7, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def IsInf : DXILOp<9, isSpecialFloat> {
+def IsInf : DXILOp<9, isSpecialFloat> {
let Doc = "Determines if the specified value is infinite.";
- let intrinsics = [ IntrinSelect<int_dx_isinf> ];
+ let intrinsics = [IntrinSelect<int_dx_isinf>];
let arguments = [OverloadTy];
let result = Int1Ty;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -434,9 +439,9 @@ def IsInf : DXILOp<9, isSpecialFloat> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Cos : DXILOp<12, unary> {
+def Cos : DXILOp<12, unary> {
let Doc = "Returns cosine(theta) for theta in radians.";
- let intrinsics = [ IntrinSelect<int_cos> ];
+ let intrinsics = [IntrinSelect<int_cos>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -444,9 +449,9 @@ def Cos : DXILOp<12, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Sin : DXILOp<13, unary> {
+def Sin : DXILOp<13, unary> {
let Doc = "Returns sine(theta) for theta in radians.";
- let intrinsics = [ IntrinSelect<int_sin> ];
+ let intrinsics = [IntrinSelect<int_sin>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -454,9 +459,9 @@ def Sin : DXILOp<13, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Tan : DXILOp<14, unary> {
+def Tan : DXILOp<14, unary> {
let Doc = "Returns tangent(theta) for theta in radians.";
- let intrinsics = [ IntrinSelect<int_tan> ];
+ let intrinsics = [IntrinSelect<int_tan>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -464,9 +469,9 @@ def Tan : DXILOp<14, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def ACos : DXILOp<15, unary> {
+def ACos : DXILOp<15, unary> {
let Doc = "Returns the arccosine of the specified value.";
- let intrinsics = [ IntrinSelect<int_acos> ];
+ let intrinsics = [IntrinSelect<int_acos>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -474,9 +479,9 @@ def ACos : DXILOp<15, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def ASin : DXILOp<16, unary> {
+def ASin : DXILOp<16, unary> {
let Doc = "Returns the arcsine of the specified value.";
- let intrinsics = [ IntrinSelect<int_asin> ];
+ let intrinsics = [IntrinSelect<int_asin>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -484,9 +489,9 @@ def ASin : DXILOp<16, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def ATan : DXILOp<17, unary> {
+def ATan : DXILOp<17, unary> {
let Doc = "Returns the arctangent of the specified value.";
- let intrinsics = [ IntrinSelect<int_atan> ];
+ let intrinsics = [IntrinSelect<int_atan>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -494,9 +499,9 @@ def ATan : DXILOp<17, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def HCos : DXILOp<18, unary> {
+def HCos : DXILOp<18, unary> {
let Doc = "Returns the hyperbolic cosine of the specified value.";
- let intrinsics = [ IntrinSelect<int_cosh> ];
+ let intrinsics = [IntrinSelect<int_cosh>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -504,9 +509,9 @@ def HCos : DXILOp<18, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def HSin : DXILOp<19, unary> {
+def HSin : DXILOp<19, unary> {
let Doc = "Returns the hyperbolic sine of the specified value.";
- let intrinsics = [ IntrinSelect<int_sinh> ];
+ let intrinsics = [IntrinSelect<int_sinh>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -514,9 +519,9 @@ def HSin : DXILOp<19, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def HTan : DXILOp<20, unary> {
+def HTan : DXILOp<20, unary> {
let Doc = "Returns the hyperbolic tan of the specified value.";
- let intrinsics = [ IntrinSelect<int_tanh> ];
+ let intrinsics = [IntrinSelect<int_tanh>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -524,10 +529,10 @@ def HTan : DXILOp<20, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Exp2 : DXILOp<21, unary> {
+def Exp2 : DXILOp<21, unary> {
let Doc = "Returns the base 2 exponential, or 2**x, of the specified value. "
"exp2(x) = 2**x.";
- let intrinsics = [ IntrinSelect<int_exp2> ];
+ let intrinsics = [IntrinSelect<int_exp2>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -535,10 +540,10 @@ def Exp2 : DXILOp<21, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Frac : DXILOp<22, unary> {
+def Frac : DXILOp<22, unary> {
let Doc = "Returns a fraction from 0 to 1 that represents the decimal part "
"of the input.";
- let intrinsics = [ IntrinSelect<int_dx_frac> ];
+ let intrinsics = [IntrinSelect<int_dx_frac>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -546,9 +551,9 @@ def Frac : DXILOp<22, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Log2 : DXILOp<23, unary> {
+def Log2 : DXILOp<23, unary> {
let Doc = "Returns the base-2 logarithm of the specified value.";
- let intrinsics = [ IntrinSelect<int_log2> ];
+ let intrinsics = [IntrinSelect<int_log2>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -556,10 +561,10 @@ def Log2 : DXILOp<23, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Sqrt : DXILOp<24, unary> {
+def Sqrt : DXILOp<24, unary> {
let Doc = "Returns the square root of the specified floating-point value, "
"per component.";
- let intrinsics = [ IntrinSelect<int_sqrt> ];
+ let intrinsics = [IntrinSelect<int_sqrt>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -567,10 +572,10 @@ def Sqrt : DXILOp<24, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def RSqrt : DXILOp<25, unary> {
+def RSqrt : DXILOp<25, unary> {
let Doc = "Returns the reciprocal of the square root of the specified value. "
"rsqrt(x) = 1 / sqrt(x).";
- let intrinsics = [ IntrinSelect<int_dx_rsqrt> ];
+ let intrinsics = [IntrinSelect<int_dx_rsqrt>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -578,10 +583,10 @@ def RSqrt : DXILOp<25, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Round : DXILOp<26, unary> {
+def Round : DXILOp<26, unary> {
let Doc = "Returns the input rounded to the nearest integer within a "
"floating-point type.";
- let intrinsics = [ IntrinSelect<int_roundeven> ];
+ let intrinsics = [IntrinSelect<int_roundeven>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -589,10 +594,10 @@ def Round : DXILOp<26, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Floor : DXILOp<27, unary> {
+def Floor : DXILOp<27, unary> {
let Doc =
"Returns the largest integer that is less than or equal to the input.";
- let intrinsics = [ IntrinSelect<int_floor> ];
+ let intrinsics = [IntrinSelect<int_floor>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -600,10 +605,10 @@ def Floor : DXILOp<27, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Ceil : DXILOp<28, unary> {
+def Ceil : DXILOp<28, unary> {
let Doc = "Returns the smallest integer that is greater than or equal to the "
"input.";
- let intrinsics = [ IntrinSelect<int_ceil> ];
+ let intrinsics = [IntrinSelect<int_ceil>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -611,9 +616,9 @@ def Ceil : DXILOp<28, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Trunc : DXILOp<29, unary> {
+def Trunc : DXILOp<29, unary> {
let Doc = "Returns the specified value truncated to the integer component.";
- let intrinsics = [ IntrinSelect<int_trunc> ];
+ let intrinsics = [IntrinSelect<int_trunc>];
let arguments = [OverloadTy];
let result = OverloadTy;
let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy]>];
@@ -621,23 +626,21 @@ def Trunc : DXILOp<29, unary> {
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def Rbits : DXILOp<30, unary> {
+def Rbits : DXILOp<30, unary> {
let Doc = "Returns the specified value with its bits reversed.";
- let intrinsics = [ IntrinSelect<int_bitreverse> ];
+ let intrinsics = [IntrinSelect<int_bitreverse>];
let arguments = [OverloadTy];
let result = OverloadTy;
- let overloads =
- [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
+ let overloads = [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def CountBits : DXILOp<31, unaryBits> {
+def CountBits : DXILOp<31, unaryBits> {
let Doc = "Returns the number of 1 bits in the specified value.";
let arguments = [OverloadTy];
let result = Int32Ty;
- let overloads =
- [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
+ let overloads = [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
@@ -645,145 +648,133 @@ def CountBits : DXILOp<31, unaryBits> {
def FirstbitLo : DXILOp<32, unaryBits> {
let Doc = "Returns the location of the first set bit starting from "
"the lowest order bit and working upward.";
- let intrinsics = [ IntrinSelect<int_dx_firstbitlow> ];
+ let intrinsics = [IntrinSelect<int_dx_firstbitlow>];
let arguments = [OverloadTy];
let result = Int32Ty;
- let overloads =
- [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
+ let overloads = [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def FirstbitHi : DXILOp<33, unaryBits> {
+def FirstbitHi : DXILOp<33, unaryBits> {
let Doc = "Returns the location of the first set bit starting from "
"the highest order bit and working downward.";
- let intrinsics = [ IntrinSelect<int_dx_firstbituhigh> ];
+ let intrinsics = [IntrinSelect<int_dx_firstbituhigh>];
let arguments = [OverloadTy];
let result = Int32Ty;
- let overloads =
- [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
+ let overloads = [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def FirstbitSHi : DXILOp<34, unaryBits> {
+def FirstbitSHi : DXILOp<34, unaryBits> {
let Doc = "Returns the location of the first set bit from "
"the highest order bit based on the sign.";
- let intrinsics = [ IntrinSelect<int_dx_firstbitshigh> ];
+ let intrinsics = [IntrinSelect<int_dx_firstbitshigh>];
let arguments = [OverloadTy];
let result = Int32Ty;
- let overloads =
- [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
+ let overloads = [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def FMax : DXILOp<35, binary> {
+def FMax : DXILOp<35, binary> {
let Doc = "Float maximum. FMax(a,b) = a > b ? a : b";
- let intrinsics = [ IntrinSelect<int_maxnum> ];
+ let intrinsics = [IntrinSelect<int_maxnum>];
let arguments = [OverloadTy, OverloadTy];
let result = OverloadTy;
- let overloads =
- [Overloads<DXIL1_0, [HalfTy, FloatTy, DoubleTy]>];
+ let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy, DoubleTy]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def FMin : DXILOp<36, binary> {
+def FMin : DXILOp<36, binary> {
let Doc = "Float minimum. FMin(a,b) = a < b ? a : b";
- let intrinsics = [ IntrinSelect<int_minnum> ];
+ let intrinsics = [IntrinSelect<int_minnum>];
let arguments = [OverloadTy, OverloadTy];
let result = OverloadTy;
- let overloads =
- [Overloads<DXIL1_0, [HalfTy, FloatTy, DoubleTy]>];
+ let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy, DoubleTy]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def SMax : DXILOp<37, binary> {
+def SMax : DXILOp<37, binary> {
let Doc = "Signed integer maximum. SMax(a,b) = a > b ? a : b";
- let intrinsics = [ IntrinSelect<int_smax> ];
+ let intrinsics = [IntrinSelect<int_smax>];
let arguments = [OverloadTy, OverloadTy];
let result = OverloadTy;
- let overloads =
- [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
+ let overloads = [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def SMin : DXILOp<38, binary> {
+def SMin : DXILOp<38, binary> {
let Doc = "Signed integer minimum. SMin(a,b) = a < b ? a : b";
- let intrinsics = [ IntrinSelect<int_smin> ];
+ let intrinsics = [IntrinSelect<int_smin>];
let arguments = [OverloadTy, OverloadTy];
let result = OverloadTy;
- let overloads =
- [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
+ let overloads = [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def UMax : DXILOp<39, binary> {
+def UMax : DXILOp<39, binary> {
let Doc = "Unsigned integer maximum. UMax(a,b) = a > b ? a : b";
- let intrinsics = [ IntrinSelect<int_umax> ];
+ let intrinsics = [IntrinSelect<int_umax>];
let arguments = [OverloadTy, OverloadTy];
let result = OverloadTy;
- let overloads =
- [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
+ let overloads = [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def UMin : DXILOp<40, binary> {
+def UMin : DXILOp<40, binary> {
let Doc = "Unsigned integer minimum. UMin(a,b) = a < b ? a : b";
- let intrinsics = [ IntrinSelect<int_umin> ];
+ let intrinsics = [IntrinSelect<int_umin>];
let arguments = [OverloadTy, OverloadTy];
let result = OverloadTy;
- let overloads =
- [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
+ let overloads = [Overloads<DXIL1_0, [Int16Ty, Int32Ty, Int64Ty]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def FMad : DXILOp<46, tertiary> {
+def FMad : DXILOp<46, tertiary> {
let Doc = "Floating point arithmetic multiply/add operation. fmad(m,a,b) = m "
"* a + b.";
- let intrinsics = [ IntrinSelect<int_fmuladd> ];
+ let intrinsics = [IntrinSelect<int_fmuladd>];
let arguments = [OverloadTy, OverloadTy, OverloadTy];
let result = OverloadTy;
- let overloads =
- [Overloads<DXIL1_0, [HalfTy, FloatTy, DoubleTy]>];
+ let overloads = [Overloads<DXIL1_0, [HalfTy, FloatTy, DoubleTy]>];
let stages = [Stages<DXIL1_0, [all_stages]>];
let attributes = [Attributes<DXIL1_0, [ReadNone]>];
}
-def IMad : DXILOp<48, tertiary> {
+def IMad : DXILOp<48, tertiary> {
let Doc = "Signed integer arithmetic multiply/add operation. imad(m,a,b) = m "
"* a + ...
[truncated]
|
- this neglects to use the clang-formatting for the defset of OpClasses as this hinders readability
- this reorders existing dxil ops to be in ascending order with respect to their opcodes - this helps be consistent with dxil.rst and other resources listing the opcodes
16d43d6
to
71881fa
Compare
bob80905
approved these changes
Jan 22, 2025
bogner
approved these changes
Jan 22, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
DXIL.td
Note: this does not include the suggested formatting changes to
defset list<DXILOpClasses> OpClasses
as it does not enforce the formatting that is primarily used elsewhereDXIL
ops by opcode in ascending order to be consistent with other definitionsThis is a small cleanup moved to be separate from #115912 for reviewability.