diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c index 847c29385bea..6974f594f37c 100644 --- a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c +++ b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c @@ -201,12 +201,12 @@ static int arm_spe_read_record(struct arm_spe_decoder *decoder) else decoder->record.op |= ARM_SPE_OP_LD; if (SPE_OP_PKT_LDST_SUBCLASS_SVE_SME_REG(payload)) - decoder->record.op |= ARM_SPE_OP_SVE_LDST; + decoder->record.op |= ARM_SPE_OP_SVE; break; case SPE_OP_PKT_HDR_CLASS_OTHER: decoder->record.op |= ARM_SPE_OP_OTHER; if (SPE_OP_PKT_OTHER_SUBCLASS_SVE(payload)) - decoder->record.op |= ARM_SPE_OP_SVE_OTHER; + decoder->record.op |= ARM_SPE_OP_SVE | ARM_SPE_OP_DP; break; case SPE_OP_PKT_HDR_CLASS_BR_ERET: decoder->record.op |= ARM_SPE_OP_BRANCH_ERET; diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h index b555e2cc1dc3..acab6d11096b 100644 --- a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h +++ b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.h @@ -43,8 +43,7 @@ enum arm_spe_2nd_op_ldst { ARM_SPE_OP_UNSPEC_REG = 1 << 9, ARM_SPE_OP_NV_SYSREG = 1 << 10, ARM_SPE_OP_SIMD_FP = 1 << 11, - ARM_SPE_OP_SVE_OTHER = 1 << 12, - ARM_SPE_OP_SVE_LDST = 1 << 13, + ARM_SPE_OP_SVE = 1 << 12, /* Assisted information for memory / SIMD */ ARM_SPE_OP_LD = 1 << 20, @@ -52,6 +51,7 @@ enum arm_spe_2nd_op_ldst { ARM_SPE_OP_ATOMIC = 1 << 22, ARM_SPE_OP_EXCL = 1 << 23, ARM_SPE_OP_AR = 1 << 24, + ARM_SPE_OP_DP = 1 << 25, /* Data processing */ }; enum arm_spe_2nd_op_branch { diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c index 614ce032f87e..881257d39587 100644 --- a/tools/perf/util/arm-spe.c +++ b/tools/perf/util/arm-spe.c @@ -346,10 +346,7 @@ static struct simd_flags arm_spe__synth_simd_flags(const struct arm_spe_record * { struct simd_flags simd_flags = {}; - if ((record->op & ARM_SPE_OP_LDST) && (record->op & ARM_SPE_OP_SVE_LDST)) - simd_flags.arch |= SIMD_OP_FLAGS_ARCH_SVE; - - if ((record->op & ARM_SPE_OP_OTHER) && (record->op & ARM_SPE_OP_SVE_OTHER)) + if (record->op & ARM_SPE_OP_SVE) simd_flags.arch |= SIMD_OP_FLAGS_ARCH_SVE; if (record->type & ARM_SPE_SVE_PARTIAL_PRED)