@@ -214,13 +214,13 @@ def NEGLH16 : SDNodeXForm<imm, [{
214214}]>;
215215
216216def NEGLF32 : SDNodeXForm<imm, [{
217- uint64_t Value = -N->getZExtValue () & 0x00000000FFFFFFFFULL;
217+ uint64_t Value = -N->getSExtValue () & 0x00000000FFFFFFFFULL;
218218 return CurDAG->getTargetConstant(Value, SDLoc(N), MVT::i64);
219219}]>;
220220
221221// Truncate an immediate to a 8-bit signed quantity.
222222def SIMM8 : SDNodeXForm<imm, [{
223- return CurDAG->getSignedTargetConstant(int8_t(N->getZExtValue ()), SDLoc(N),
223+ return CurDAG->getSignedTargetConstant(int8_t(N->getSExtValue ()), SDLoc(N),
224224 MVT::i64);
225225}]>;
226226
@@ -244,13 +244,13 @@ def UIMM12 : SDNodeXForm<imm, [{
244244
245245// Truncate an immediate to a 16-bit signed quantity.
246246def SIMM16 : SDNodeXForm<imm, [{
247- return CurDAG->getSignedTargetConstant(int16_t(N->getZExtValue ()), SDLoc(N),
247+ return CurDAG->getSignedTargetConstant(int16_t(N->getSExtValue ()), SDLoc(N),
248248 MVT::i64);
249249}]>;
250250
251251// Negate and then truncate an immediate to a 16-bit signed quantity.
252252def NEGSIMM16 : SDNodeXForm<imm, [{
253- return CurDAG->getSignedTargetConstant(int16_t(-N->getZExtValue ()), SDLoc(N),
253+ return CurDAG->getSignedTargetConstant(int16_t(-N->getSExtValue ()), SDLoc(N),
254254 MVT::i64);
255255}]>;
256256
@@ -262,13 +262,13 @@ def UIMM16 : SDNodeXForm<imm, [{
262262
263263// Truncate an immediate to a 32-bit signed quantity.
264264def SIMM32 : SDNodeXForm<imm, [{
265- return CurDAG->getSignedTargetConstant(int32_t(N->getZExtValue ()), SDLoc(N),
265+ return CurDAG->getSignedTargetConstant(int32_t(N->getSExtValue ()), SDLoc(N),
266266 MVT::i64);
267267}]>;
268268
269269// Negate and then truncate an immediate to a 32-bit unsigned quantity.
270270def NEGSIMM32 : SDNodeXForm<imm, [{
271- return CurDAG->getSignedTargetConstant(int32_t(-N->getZExtValue ()), SDLoc(N),
271+ return CurDAG->getSignedTargetConstant(int32_t(-N->getSExtValue ()), SDLoc(N),
272272 MVT::i64);
273273}]>;
274274
0 commit comments