@@ -94,6 +94,12 @@ def SDTFPRoundOp : SDTypeProfile<1, 1, [ // fround
94
94
def SDTFPExtendOp : SDTypeProfile<1, 1, [ // fextend
95
95
SDTCisFP<0>, SDTCisFP<1>, SDTCisOpSmallerThanOp<1, 0>
96
96
]>;
97
+ def SDTIntToFPOp : SDTypeProfile<1, 1, [ // [su]int_to_fp
98
+ SDTCisFP<0>, SDTCisInt<1>
99
+ ]>;
100
+ def SDTFPToIntOp : SDTypeProfile<1, 1, [ // fp_to_[su]int
101
+ SDTCisInt<0>, SDTCisFP<1>
102
+ ]>;
97
103
def SDTExtInreg : SDTypeProfile<1, 2, [ // sext_inreg
98
104
SDTCisSameAs<0, 1>, SDTCisInt<0>, SDTCisVT<2, OtherVT>,
99
105
SDTCisVTSmallerThanOp<2, 1>
@@ -172,6 +178,11 @@ def fsqrt : SDNode<"ISD::FSQRT" , SDTFPUnaryOp>;
172
178
def fround : SDNode<"ISD::FP_ROUND" , SDTFPRoundOp>;
173
179
def fextend : SDNode<"ISD::FP_EXTEND" , SDTFPExtendOp>;
174
180
181
+ def sint_to_fp : SDNode<"ISD::SINT_TO_FP" , SDTIntToFPOp>;
182
+ def uint_to_fp : SDNode<"ISD::UINT_TO_FP" , SDTIntToFPOp>;
183
+ def fp_to_sint : SDNode<"ISD::FP_TO_SINT" , SDTFPToIntOp>;
184
+ def fp_to_uint : SDNode<"ISD::FP_TO_UINT" , SDTFPToIntOp>;
185
+
175
186
def setcc : SDNode<"ISD::SETCC" , SDTSetCC>;
176
187
177
188
//===----------------------------------------------------------------------===//
0 commit comments