On Thu, Aug 15, 2024, at 20:24, Matt Turner wrote: > On 07/31, Arnd Bergmann wrote: >>=== iWMMXt === >> >>I'm not aware of any remaining users for iWMMXt, and we dropped >>support for ARMv7 PJ4 CPUs (MMP2, Berlin) already, so the >>only supported hardware that even has this is Intel/Marvell >>PXA and MMP1. > > pixman had [1][2] iwMMXt paths that I optimized for the XO 1.75 and > would occasionally test on a CuBox over the years. > > I'm surprised to see that commit b9920fdd5a75 ("ARM: 9352/1: iwmmxt: > Remove support for PJ4/PJ4B cores") landed with the claim that "there is > no v6/v7 user space that actually makes use of this". A quick Google > search reveals evidence of usage [3]. It doesn't seem like this should > have been backported to the stable branches in any case. Sorry for missing this one, I'm sure I spend more than a quick google search trying to find instances of this, but clearly didn't see this, and I now see that pixman is the only package listed in https://codesearch.debian.net that uses the compiler flags. I'm still not sure how your version worked on ARMv7, was this before or after the move to the hardfloat ABI? What I see on modern armhf gcc targets is that they reject -march=iwmmxt{,2} because those imply armv5 without vfp, while armhf toolchains require vfpv3d16 as the minimum fpu. My guess is that the pixman code still works correctly for softfloat toolchains, but the meson.build check would fall back to the vfpv3 version for armv7/hardfloat builds. gcc also rejects "-march=iwmmxt2+vfpv3-d16". While it accepts "-march=iwmmxt2 -mfpu=vfpv3-d16", I suspect that this combination has not been tested well. > I know that ffmpeg used to have iwMMXt paths as well, but I believe they > were removed a few years ago. Right, apparently this was in 2012: https://gitlab.laihua.com/linshizhi/ffmpeg.wasm-core/commit/363bd1c62c1bcbac2dcb56f3dc47824f075888d2 Arnd