Hi, I’m trouble in f32->f64.
My backend doesn’t support " load<(dereferenceable load 4 from %ir.a), anyext from f32>",
It comes from “fp_extend 's conbine” . I didn’t find method to control fp_extend 's conbine.
It’s called in “DAGCombiner::visit(SDNode *N)”.
------------code------------
double a = 2.7;
float b = 1.2;
a = b;
----------------log------------
…
Combining: t13: ch = store<(store 8 into %ir.b)> t11:1, t12, FrameIndex:i32<2>, undef:i32, …\testcase_8slots\input.c:10:4
Combining: t12: f64 = fp_extend t11, …\testcase_8slots\input.c:10:6
Creating new node: t25: f64,ch = load<(dereferenceable load 4 from %ir.a), anyext from f32> t10, FrameIndex:i32<1>, undef:i32, …\testcase_8slots\input.c:10:6
Replacing.1 t12: f64 = fp_extend t11, …\testcase_8slots\input.c:10:6
…
so my question is:
How to stop FP_EXTEND’s combine.
Or I need write a load<(dereferenceable load 4 from %ir.a), anyext from f32> pattern?