[LLVMdev] floating point immediate problem

Heikki Kultala hkultala at cs.tut.fi
Mon Mar 19 07:41:08 PDT 2012


I tried to generate pattern for instruction which transports floating 
point immediate to a floating point register.

def MOVF32fk : InstTCE<(outs F32Regs:$dst), (ins f32imm:$val),
	           "$val -> $dst;",
                    [(set F32Regs:$dst, (f32 imm:$val))]>;

This causes an type contradiction:

/home/hkultala26/src/devel/tce/src/applibs/LLVMBackend/plugin//TCEInstrInfo.td:109:1: 
error: In MOVF32fk: Type inference contradiction found, 'f32' needs to 
be integer
def MOVF32fk : InstTCE<(outs F32Regs:$dst), (ins f32imm:$val),



why? Why does llvm assume floating point immediate needs to be integer?





More information about the llvm-dev mailing list