[X86] Synchronise scheduler classes of VPERM2F128/VBROADCASTF128/VEXTRACTF128/VINSERT...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 21 Nov 2022 17:15:38 +0000 (17:15 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 21 Nov 2022 17:15:47 +0000 (17:15 +0000)
commit746cf4f13feaff97805e1daf8d600fa7287b3568
treecd99e9f9a1eaebfa694427e07fb2715c9095e500
parentd6abdf46bc4d305f6046a8134316dd19cc6b5598
[X86] Synchronise scheduler classes of VPERM2F128/VBROADCASTF128/VEXTRACTF128/VINSERTF128 with I128 equivalents

znver1/znver2 has barely any difference in behaviour between the AVX1/2 variants of these instructions - it looks like it was a copy+paste mistake to miss the AVX2 integer domain instructions in the overrides.

Having said that the override numbers don't appear to match the numbers in the AMD 17h SoGs very well - for instance vperm2f128/vperm2i128 might be microcoded from the AMD sense of >3 uops, but it doesn't have a 100cy latency..... These will need to be further addressed.
llvm/lib/Target/X86/X86ScheduleZnver1.td
llvm/lib/Target/X86/X86ScheduleZnver2.td
llvm/test/tools/llvm-mca/X86/Znver1/resources-avx2.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s