Fixes llvm validation error in a Deus Ex shader on radeonsi. Both operands to ICmp instruction are not of the same type! --- src/amd/common/ac_nir_to_llvm.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 0ca3f83a248..1dfb865a41b 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -195,7 +195,10 @@ static LLVMValueRef emit_int_cmp(struct ac_llvm_context *ctx, LLVMIntPredicate pred, LLVMValueRef src0, LLVMValueRef src1) { - LLVMValueRef result = LLVMBuildICmp(ctx->builder, pred, src0, src1, ""); + LLVMValueRef result; + src0 = ac_to_integer(ctx, src0); + src1 = ac_to_integer(ctx, src1); + result = LLVMBuildICmp(ctx->builder, pred, src0, src1, ""); return LLVMBuildSelect(ctx->builder, result, LLVMConstInt(ctx->i32, 0xFFFFFFFF, false), ctx->i32_0, ""); @@ -281,6 +284,8 @@ static LLVMValueRef emit_minmax_int(struct ac_llvm_context *ctx, LLVMIntPredicate pred, LLVMValueRef src0, LLVMValueRef src1) { + src0 = ac_to_integer(ctx, src0); + src1 = ac_to_integer(ctx, src1); return LLVMBuildSelect(ctx->builder, LLVMBuildICmp(ctx->builder, pred, src0, src1, ""), src0, -- 2.20.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev