Simply use getRegister which deals with various ConstantExpr.
Thanks to Abrahm Scully who report the bug.
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
if (CPV && dyn_cast<ConstantVector>(CPV) &&
isa<UndefValue>(extractConstantElem(CPV, 0)))
continue;
- const ir::ImmediateIndex immIndex = this->newImmediate(CP);
- const ir::Immediate imm = ctx.getImmediate(immIndex);
- ctx.LOADI(imm.type, dst, immIndex);
+ ctx.MOV(type, dst, getRegister(CP));
} else if (regTranslator.valueExists(IV,0) || dyn_cast<Constant>(IV)) {
const ir::Register src = this->getRegister(IV);
ctx.MOV(type, dst, src);