@@ -46,28 +46,25 @@ def vfp_f16imm : Operand<f16>,
46
46
PatLeaf<(f16 fpimm), [{
47
47
return ARM_AM::getFP16Imm(N->getValueAPF()) != -1;
48
48
}], SDNodeXForm<fpimm, [{
49
- APFloat InVal = N->getValueAPF();
50
- uint32_t enc = ARM_AM::getFP16Imm(InVal);
51
- return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);
49
+ uint32_t Enc = ARM_AM::getFP16Imm(N->getValueAPF());
50
+ return CurDAG->getTargetConstant(Enc, SDLoc(N), MVT::i32);
52
51
}]>> {
53
52
let PrintMethod = "printFPImmOperand";
54
53
let ParserMatchClass = FPImmOperand;
55
54
}
56
55
57
56
def vfp_f32f16imm_xform : SDNodeXForm<fpimm, [{
58
- APFloat InVal = N->getValueAPF();
59
- uint32_t enc = ARM_AM::getFP32FP16Imm(InVal);
60
- return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);
57
+ uint32_t Enc = ARM_AM::getFP32FP16Imm(N->getValueAPF());
58
+ return CurDAG->getTargetConstant(Enc, SDLoc(N), MVT::i32);
61
59
}]>;
62
60
63
61
def vfp_f32f16imm : PatLeaf<(f32 fpimm), [{
64
62
return ARM_AM::getFP32FP16Imm(N->getValueAPF()) != -1;
65
63
}], vfp_f32f16imm_xform>;
66
64
67
65
def vfp_f32imm_xform : SDNodeXForm<fpimm, [{
68
- APFloat InVal = N->getValueAPF();
69
- uint32_t enc = ARM_AM::getFP32Imm(InVal);
70
- return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);
66
+ uint32_t Enc = ARM_AM::getFP32Imm(N->getValueAPF());
67
+ return CurDAG->getTargetConstant(Enc, SDLoc(N), MVT::i32);
71
68
}]>;
72
69
73
70
def gi_vfp_f32imm : GICustomOperandRenderer<"renderVFPF32Imm">,
@@ -88,9 +85,8 @@ def vfp_f32imm : Operand<f32>,
88
85
}
89
86
90
87
def vfp_f64imm_xform : SDNodeXForm<fpimm, [{
91
- APFloat InVal = N->getValueAPF();
92
- uint32_t enc = ARM_AM::getFP64Imm(InVal);
93
- return CurDAG->getTargetConstant(enc, SDLoc(N), MVT::i32);
88
+ uint32_t Enc = ARM_AM::getFP64Imm(N->getValueAPF());
89
+ return CurDAG->getTargetConstant(Enc, SDLoc(N), MVT::i32);
94
90
}]>;
95
91
96
92
def gi_vfp_f64imm : GICustomOperandRenderer<"renderVFPF64Imm">,
0 commit comments