Convert an llvm:ICmpInst to llvm::FCmpInst

Hi, all

I am writing an LLVM pass in which I need to convert an llvm::ICmpInst, denoted by ‘inst’ below, to llvm::FCmpInst.

My current approach is somewhat clumsy: I first retrieve the operands of ‘inst’, then convert those operands of int type to double typed values, and then create a new llvm::FCmpInst with the double typed values. This is clumsy because I also need to determine the different types of the integer operands, such as int32, int64, etc.

So, is there a simpler way to convert an llvm::ICmpInst to llvm::FCmpInst? Thanks.

Sincerely,

Zhoulai

There is not a way of which I am aware. Because you cannot convert an instruction from one type of instruction to another type of instruction, the only way to do what you’re suggesting is to create a new FCmpInst and to replace the uses of the ICmpInst with the FCmpInst. Regards, John Criswell