Cannot Select ConstantFP on x86

I just ran into this today with x86-64:

Cannot yet select: 0x3cbc180: f64 = ConstantFP <1>

As far as I can tell, DAGCombiner comes along and sees an sint_to_fp of the
constant 1 and hapilly folds it into a ConstantFP<1>. ISel then blows up
because there's no pattern for it.

Does this look familiar to anyone? I don't see any relevant bugs in the
database.

                                           -Dave

I just ran into this today with x86-64:

Cannot yet select: 0x3cbc180: f64 = ConstantFP <1>

As far as I can tell, DAGCombiner comes along and sees an sint_to_fp of the
constant 1 and hapilly folds it into a ConstantFP<1>. ISel then blows up
because there's no pattern for it.

Sounds like a bug if dag combiner is doing this after legalization. DAG combiner should never form anything that's illegal after legalization has completed.

Evan

Do you have a testcase? It sounds like something that would be easy to fix.

-Chris

I have a fix (yes, it was trivial). I'll have to see about a testcase as it's
proprietary code.

                                                   -Dave

Usually, proprietary testcases can be reduced and simplified to the point where they are innocuous,

-Chris

Yep, that's what I'm trying to do.

                                               -Dave

Have you run delta?

Delta doesn't apply. I'm going to try bugpoint.

                                              -Dave