aco: declare 8-bit/16-bit reduce operations

The 8-bit float variants are only for consistency but are unused.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4494>
This commit is contained in:
Samuel Pitoiset 2020-04-08 08:39:08 +02:00 committed by Marge Bot
parent bf97150d45
commit cc79945b21
2 changed files with 39 additions and 13 deletions

View File

@ -1125,19 +1125,19 @@ struct Pseudo_barrier_instruction : public Instruction {
static_assert(sizeof(Pseudo_barrier_instruction) == sizeof(Instruction) + 0, "Unexpected padding");
enum ReduceOp : uint16_t {
iadd32, iadd64,
imul32, imul64,
fadd32, fadd64,
fmul32, fmul64,
imin32, imin64,
imax32, imax64,
umin32, umin64,
umax32, umax64,
fmin32, fmin64,
fmax32, fmax64,
iand32, iand64,
ior32, ior64,
ixor32, ixor64,
iadd8, iadd16, iadd32, iadd64,
imul8, imul16, imul32, imul64,
fadd8, fadd16, fadd32, fadd64,
fmul8, fmul16, fmul32, fmul64,
imin8, imin16, imin32, imin64,
imax8, imax16, imax32, imax64,
umin8, umin16, umin32, umin64,
umax8, umax16, umax32, umax64,
fmin8, fmin16, fmin32, fmin64,
fmax8, fmax16, fmax32, fmax64,
iand8, iand16, iand32, iand64,
ior8, ior16, ior32, ior64,
ixor8, ixor16, ixor32, ixor64,
gfx10_wave64_bpermute
};

View File

@ -7,30 +7,56 @@
namespace aco {
static const char *reduce_ops[] = {
[iadd8] = "iadd8",
[iadd16] = "iadd16",
[iadd32] = "iadd32",
[iadd64] = "iadd64",
[imul8] = "imul8",
[imul16] = "imul16",
[imul32] = "imul32",
[imul64] = "imul64",
[fadd8] = "fadd8",
[fadd16] = "fadd16",
[fadd32] = "fadd32",
[fadd64] = "fadd64",
[fmul8] = "fmul8",
[fmul16] = "fmul16",
[fmul32] = "fmul32",
[fmul64] = "fmul64",
[imin8] = "imin8",
[imin16] = "imin16",
[imin32] = "imin32",
[imin64] = "imin64",
[imax8] = "imax8",
[imax16] = "imax16",
[imax32] = "imax32",
[imax64] = "imax64",
[umin8] = "umin8",
[umin16] = "umin16",
[umin32] = "umin32",
[umin64] = "umin64",
[umax8] = "umax8",
[umax16] = "umax16",
[umax32] = "umax32",
[umax64] = "umax64",
[fmin8] = "fmin8",
[fmin16] = "fmin16",
[fmin32] = "fmin32",
[fmin64] = "fmin64",
[fmax8] = "fmax8",
[fmax16] = "fmax16",
[fmax32] = "fmax32",
[fmax64] = "fmax64",
[iand8] = "iand8",
[iand16] = "iand16",
[iand32] = "iand32",
[iand64] = "iand64",
[ior8] = "ior8",
[ior16] = "ior16",
[ior32] = "ior32",
[ior64] = "ior64",
[ixor8] = "ixor8",
[ixor16] = "ixor16",
[ixor32] = "ixor32",
[ixor64] = "ixor64",
[gfx10_wave64_bpermute] = "gfx10_wave64_bpermute",