mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-14 21:00:42 +02:00
Wide shifts under SVE use 64-bit source elements. If a smaller element overlaps the 64-bit shift element then it uses that shift eg: - Src1[15:0] >> Shift[63:0] - Src1[31:16] >> Shift[63:0] - Src1[47:32] >> Shift[63:0] - Src1[63:48] >> Shift[63:0] - After this point it will switch to the next 64-bit shift element - Src1[79:64] >> Shift[127:64] - Src1[95:80] >> Shift[127:64] - Src1[111:96] >> Shift[127:64] - Src1[127:112] >> Shift[127:64] As seen, we can skip the duplication of the scalar element if the OpSize is 64-bit, this makes MMX emulation slightly more optimal here. This also means that a few instructions that weren't claimed to be optimal actually are since they need the duplication operation (which vixl always labels as a mov).