I've seen this on both an Intel Xeon X5680 and an AMD 9654 Genoa.
Sorry if that is a double post but it doesn't seem to have shown up in the groups thread.
Here's the filtered papi decode output from the Xeon:
papi_decode | grep -i branch
PAPI_BRU_IDL,NOT_DERIVED,,"Branch idle cycles","Cycles branch units are idle",
PAPI_BTAC_M,NOT_DERIVED,,"Br targt addr miss","Branch target address cache misses",
PAPI_BR_UCN,NOT_DERIVED,,"Uncond branch","Unconditional branch instructions",,BR_INST_EXEC:DIRECT
PAPI_BR_CN,NOT_DERIVED,,"Cond branch","Conditional branch instructions",,BR_INST_EXEC:COND
PAPI_BR_TKN,NOT_DERIVED,,"Cond branch taken","Conditional branch instructions taken",,BR_INST_EXEC:TAKEN
PAPI_BR_NTK,DERIVED_SUB,,"Cond br not taken","Conditional branch instructions not taken",,BR_INST_EXEC:ANY,BR_INST_EXEC:TAKEN
PAPI_BR_MSP,NOT_DERIVED,,"Cond br mspredictd","Conditional branch instructions mispredicted",,BR_MISP_EXEC:ANY
PAPI_BR_PRC,DERIVED_SUB,,"Cond br predicted","Conditional branch instructions correctly predicted",,BR_INST_EXEC:COND,BR_MISP_EXEC:COND
PAPI_BR_INS,NOT_DERIVED,,"Branches","Branch instructions",,BR_INST_EXEC:ANY
And
here is a test that shows the source of the negative values in the derived events and confirms it's multiplexing related.
An AI assembled that test but it looks fairly sane to me...
The output of running that code on the Xeon system:
PAPI Multiplexing Derived Event Test
PAPI 7.2. 0, GenuineIntel Intel(R) Xeon(R) CPU X5680 @ 3.33GHz
Derived event definitions:
PAPI_BR_CN : NOT_DERIVED
PAPI_BR_UCN : NOT_DERIVED
PAPI_BR_TKN : NOT_DERIVED
PAPI_BR_NTK : DERIVED_SUB (BR_INST_EXEC:ANY - BR_INST_EXEC:TAKEN)
PAPI_BR_MSP : NOT_DERIVED
PAPI_BR_PRC : DERIVED_SUB (BR_INST_EXEC:COND - BR_MISP_EXEC:COND)
--- WITHOUT MULTIPLEXING ---
Adding events:
PAPI_BR_CN OK
PAPI_BR_UCN OK
PAPI_BR_TKN OK
PAPI_BR_NTK OK
PAPI_BR_MSP FAIL (Invalid argument)
PAPI_BR_PRC FAIL (Invalid argument)
perf::BRANCHES FAIL (Invalid argument)
perf::BRANCH-MISSES FAIL (Invalid argument)
Results: 4/8 events added, 0 negative values (0.0%)
--- WITH MULTIPLEXING ---
Adding events:
PAPI_BR_CN OK
PAPI_BR_UCN OK
PAPI_BR_TKN OK
PAPI_BR_NTK OK
PAPI_BR_MSP OK
PAPI_BR_PRC OK
perf::BRANCHES OK
perf::BRANCH-MISSES OK
Negative: iter=3 PAPI_BR_NTK=-22232
Negative: iter=4 PAPI_BR_NTK=-224470
Negative: iter=5 PAPI_BR_NTK=-214256
Results: 8/8 events added, 260 negative values (6.5%)
Negative by event: PAPI_BR_NTK=75 PAPI_BR_PRC=185
Inconsistent extrapolation: CN<MSP=228, CN<TKN=133
--- SUMMARY ---
No Mpx Mpx
Events added: 4 8
Negative values: 0 260
Negative values occur ONLY with multiplexing enabled.
=Wyatt