mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-04 02:18:16 +02:00
aco/gfx8: fix 16bit nir_op_ffma
aco uses the GFX9 opcode names, and GFX8 only has the legacy 16bit fma
that zeros the high register half.
Fixes: 570bfe1ee0 ("ac: handle new float multadd opcodes")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41837>
This commit is contained in:
parent
6564b70498
commit
38c4461c78
2 changed files with 4 additions and 110 deletions
|
|
@ -48,112 +48,3 @@ dEQP-VK.spirv_assembly.instruction.compute.opfma.fp64.vec3.rte.denorm_flush.dire
|
|||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp64.vec3.rte.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp64.vec4.rte.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp64.vec4.rte.denorm_flush.float_controls,Fail
|
||||
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rte.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rte.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rte.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rte.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rte.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rte.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rte.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rte.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rte.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rtz.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rtz.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rtz.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rtz.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rtz.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rtz.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rtz.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rtz.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.rtz.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.undef.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.undef.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.undef.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.undef.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.undef.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.undef.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.undef.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.undef.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.scalar.undef.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rte.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rte.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rte.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rte.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rte.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rte.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rte.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rte.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rte.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rtz.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rtz.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rtz.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rtz.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rtz.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rtz.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rtz.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rtz.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.rtz.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.undef.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.undef.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.undef.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.undef.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.undef.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.undef.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.undef.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.undef.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec2.undef.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rte.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rte.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rte.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rte.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rte.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rte.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rte.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rte.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rte.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rtz.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rtz.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rtz.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rtz.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rtz.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rtz.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rtz.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rtz.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.rtz.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.undef.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.undef.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.undef.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.undef.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.undef.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.undef.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.undef.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.undef.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec3.undef.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rte.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rte.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rte.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rte.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rte.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rte.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rte.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rte.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rte.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rtz.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rtz.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rtz.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rtz.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rtz.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rtz.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rtz.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rtz.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.rtz.denorm_preserve.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.undef.denorm_flush.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.undef.denorm_flush.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.undef.denorm_flush.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.undef.denorm_none.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.undef.denorm_none.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.undef.denorm_none.random,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.undef.denorm_preserve.directed,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.undef.denorm_preserve.float_controls,Fail
|
||||
dEQP-VK.spirv_assembly.instruction.compute.opfma.fp16.vec4.undef.denorm_preserve.random,Fail
|
||||
|
|
|
|||
|
|
@ -1927,7 +1927,10 @@ visit_alu_instr(isel_context* ctx, nir_alu_instr* instr)
|
|||
}
|
||||
case nir_op_ffma: {
|
||||
if (dst.regClass() == v2b) {
|
||||
emit_vop3a_instruction(ctx, instr, aco_opcode::v_fma_f16, dst, false, 3);
|
||||
if (ctx->options->gfx_level >= GFX9)
|
||||
emit_vop3a_instruction(ctx, instr, aco_opcode::v_fma_f16, dst, false, 3);
|
||||
else
|
||||
emit_vop3a_instruction(ctx, instr, aco_opcode::v_fma_legacy_f16, dst, false, 3);
|
||||
} else if (dst.regClass() == v1 && instr->def.bit_size == 16) {
|
||||
assert(instr->def.num_components == 2);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue