https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121867
--- Comment #2 from Jeevitha <jeevitha at gcc dot gnu.org> --- https://patchwork.sourceware.org/project/gcc/patch/[email protected]/ After enabling GIMPLE folding, the behavior of vec_sl with vector long long differs from the original test (pr86731-longlong.c). Before: Folding was disabled, so the compiler generated the result at runtime using xxspltib + vupkhsw + vsld. The test expected 2 splats, 2 shifts, and 0 lvx. After (with folding enabled): The shift is constant-folded at compile time by modulo reduction. For mzero = {-1, -1}, the low 6 bits of the shift amount equal 63, producing {0x8000000000000000, 0x8000000000000000}. Since Power9 and earlier lack a splat instruction for arbitrary 64-bit values, the constant is placed in memory and loaded with lxv. This is the expected behavior, so the testcase was updated accordingly.
