Module: Mesa Branch: main Commit: 09eb6e31066bd118dad5c6e227db9eae407e3971 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=09eb6e31066bd118dad5c6e227db9eae407e3971
Author: Rhys Perry <pendingchao...@gmail.com> Date: Tue Nov 7 12:50:24 2023 +0000 aco/tests: fix tests with LLVM 18 Signed-off-by: Rhys Perry <pendingchao...@gmail.com> Reviewed-by: Georg Lehmann <dadschoo...@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26092> --- src/amd/compiler/tests/test_assembler.cpp | 61 +++++++++++++++++++------------ 1 file changed, 38 insertions(+), 23 deletions(-) diff --git a/src/amd/compiler/tests/test_assembler.cpp b/src/amd/compiler/tests/test_assembler.cpp index 74febcc0ef1..a7106e98686 100644 --- a/src/amd/compiler/tests/test_assembler.cpp +++ b/src/amd/compiler/tests/test_assembler.cpp @@ -806,44 +806,50 @@ BEGIN_TEST(assembler.gfx11.vinterp) Operand op2(bld.tmp(v1)); op2.setFixed(PhysReg(256 + 30)); + //! llvm_version: #llvm_ver + fprintf(output, "llvm_version: %u\n", LLVM_VERSION_MAJOR); + //>> v_interp_p10_f32 v42, v10, v20, v30 wait_exp:7 ; cd00072a 047a290a bld.vinterp_inreg(aco_opcode::v_interp_p10_f32_inreg, dst, op0, op1, op2); //! v_interp_p10_f32 v42, v10, v20, v30 wait_exp:6 ; cd00062a 047a290a bld.vinterp_inreg(aco_opcode::v_interp_p10_f32_inreg, dst, op0, op1, op2, 6); - //! v_interp_p2_f32 v42, v10, v20, v30 ; cd01002a 047a290a + //; if llvm_ver >= 18: + //; insert_pattern('v_interp_p2_f32 v42, v10, v20, v30 wait_exp:0 ; cd01002a 047a290a') + //; else: + //; insert_pattern('v_interp_p2_f32 v42, v10, v20, v30 ; cd01002a 047a290a') bld.vinterp_inreg(aco_opcode::v_interp_p2_f32_inreg, dst, op0, op1, op2, 0); - //! v_interp_p10_f32 v42, -v10, v20, v30 ; cd00002a 247a290a - bld.vinterp_inreg(aco_opcode::v_interp_p10_f32_inreg, dst, op0, op1, op2, 0) + //! v_interp_p10_f32 v42, -v10, v20, v30 wait_exp:6 ; cd00062a 247a290a + bld.vinterp_inreg(aco_opcode::v_interp_p10_f32_inreg, dst, op0, op1, op2, 6) ->vinterp_inreg() .neg[0] = true; - //! v_interp_p10_f32 v42, v10, -v20, v30 ; cd00002a 447a290a - bld.vinterp_inreg(aco_opcode::v_interp_p10_f32_inreg, dst, op0, op1, op2, 0) + //! v_interp_p10_f32 v42, v10, -v20, v30 wait_exp:6 ; cd00062a 447a290a + bld.vinterp_inreg(aco_opcode::v_interp_p10_f32_inreg, dst, op0, op1, op2, 6) ->vinterp_inreg() .neg[1] = true; - //! v_interp_p10_f32 v42, v10, v20, -v30 ; cd00002a 847a290a - bld.vinterp_inreg(aco_opcode::v_interp_p10_f32_inreg, dst, op0, op1, op2, 0) + //! v_interp_p10_f32 v42, v10, v20, -v30 wait_exp:6 ; cd00062a 847a290a + bld.vinterp_inreg(aco_opcode::v_interp_p10_f32_inreg, dst, op0, op1, op2, 6) ->vinterp_inreg() .neg[2] = true; - //! v_interp_p10_f16_f32 v42, v10, v20, v30 op_sel:[1,0,0,0] ; cd02082a 047a290a - bld.vinterp_inreg(aco_opcode::v_interp_p10_f16_f32_inreg, dst, op0, op1, op2, 0, 0x1); + //! v_interp_p10_f16_f32 v42, v10, v20, v30 op_sel:[1,0,0,0] wait_exp:6 ; cd020e2a 047a290a + bld.vinterp_inreg(aco_opcode::v_interp_p10_f16_f32_inreg, dst, op0, op1, op2, 6, 0x1); - //! v_interp_p2_f16_f32 v42, v10, v20, v30 op_sel:[0,1,0,0] ; cd03102a 047a290a - bld.vinterp_inreg(aco_opcode::v_interp_p2_f16_f32_inreg, dst, op0, op1, op2, 0, 0x2); + //! v_interp_p2_f16_f32 v42, v10, v20, v30 op_sel:[0,1,0,0] wait_exp:6 ; cd03162a 047a290a + bld.vinterp_inreg(aco_opcode::v_interp_p2_f16_f32_inreg, dst, op0, op1, op2, 6, 0x2); - //! v_interp_p10_rtz_f16_f32 v42, v10, v20, v30 op_sel:[0,0,1,0] ; cd04202a 047a290a - bld.vinterp_inreg(aco_opcode::v_interp_p10_rtz_f16_f32_inreg, dst, op0, op1, op2, 0, 0x4); + //! v_interp_p10_rtz_f16_f32 v42, v10, v20, v30 op_sel:[0,0,1,0] wait_exp:6 ; cd04262a 047a290a + bld.vinterp_inreg(aco_opcode::v_interp_p10_rtz_f16_f32_inreg, dst, op0, op1, op2, 6, 0x4); - //! v_interp_p2_rtz_f16_f32 v42, v10, v20, v30 op_sel:[0,0,0,1] ; cd05402a 047a290a - bld.vinterp_inreg(aco_opcode::v_interp_p2_rtz_f16_f32_inreg, dst, op0, op1, op2, 0, 0x8); + //! v_interp_p2_rtz_f16_f32 v42, v10, v20, v30 op_sel:[0,0,0,1] wait_exp:6 ; cd05462a 047a290a + bld.vinterp_inreg(aco_opcode::v_interp_p2_rtz_f16_f32_inreg, dst, op0, op1, op2, 6, 0x8); - //! v_interp_p10_f32 v42, v10, v20, v30 clamp ; cd00802a 047a290a - bld.vinterp_inreg(aco_opcode::v_interp_p10_f32_inreg, dst, op0, op1, op2, 0) + //! v_interp_p10_f32 v42, v10, v20, v30 clamp wait_exp:6 ; cd00862a 047a290a + bld.vinterp_inreg(aco_opcode::v_interp_p10_f32_inreg, dst, op0, op1, op2, 6) ->vinterp_inreg() .clamp = true; @@ -860,26 +866,35 @@ BEGIN_TEST(assembler.gfx11.ldsdir) Operand op(bld.tmp(s1)); op.setFixed(m0); + //! llvm_version: #llvm_ver + fprintf(output, "llvm_version: %u\n", LLVM_VERSION_MAJOR); + //>> lds_direct_load v42 wait_vdst:15 ; ce1f002a bld.ldsdir(aco_opcode::lds_direct_load, dst, op)->ldsdir().wait_vdst = 15; //! lds_direct_load v42 wait_vdst:6 ; ce16002a bld.ldsdir(aco_opcode::lds_direct_load, dst, op)->ldsdir().wait_vdst = 6; - //! lds_direct_load v42 ; ce10002a + //; if llvm_ver >= 18: + //; insert_pattern('lds_direct_load v42 wait_vdst:0 ; ce10002a') + //; else: + //; insert_pattern('lds_direct_load v42 ; ce10002a') bld.ldsdir(aco_opcode::lds_direct_load, dst, op)->ldsdir().wait_vdst = 0; //! lds_param_load v42, attr56.x wait_vdst:8 ; ce08e02a bld.ldsdir(aco_opcode::lds_param_load, dst, op, 56, 0)->ldsdir().wait_vdst = 8; - //! lds_param_load v42, attr56.x ; ce00e02a + //; if llvm_ver >= 18: + //; insert_pattern('lds_param_load v42, attr56.x wait_vdst:0 ; ce00e02a') + //; else: + //; insert_pattern('lds_param_load v42, attr56.x ; ce00e02a') bld.ldsdir(aco_opcode::lds_param_load, dst, op, 56, 0)->ldsdir().wait_vdst = 0; - //! lds_param_load v42, attr34.y ; ce00892a - bld.ldsdir(aco_opcode::lds_param_load, dst, op, 34, 1)->ldsdir().wait_vdst = 0; + //! lds_param_load v42, attr34.y wait_vdst:8 ; ce08892a + bld.ldsdir(aco_opcode::lds_param_load, dst, op, 34, 1)->ldsdir().wait_vdst = 8; - //! lds_param_load v42, attr12.z ; ce00322a - bld.ldsdir(aco_opcode::lds_param_load, dst, op, 12, 2)->ldsdir().wait_vdst = 0; + //! lds_param_load v42, attr12.z wait_vdst:8 ; ce08322a + bld.ldsdir(aco_opcode::lds_param_load, dst, op, 12, 2)->ldsdir().wait_vdst = 8; finish_assembler_test(); END_TEST