Simply use getRegister which deals with various ConstantExpr. Thanks to Abrahm Scully who report the bug.
Signed-off-by: Ruiling Song <[email protected]> --- backend/src/llvm/llvm_gen_backend.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp index f3291f8..1bf59a1 100644 --- a/backend/src/llvm/llvm_gen_backend.cpp +++ b/backend/src/llvm/llvm_gen_backend.cpp @@ -1083,9 +1083,7 @@ namespace gbe 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); -- 1.7.10.4 _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
