[Bug target/106069] [12/13 Regression] wrong code with -O -fno-tree-forwprop -maltivec on ppc64le
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jul 29 11:21:45 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106069
--- Comment #18 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #17)
> Seeing
>
> Trying 21 -> 24:
> 21: r150:V4SI=vec_select(vec_concat(r146:V4SI,r141:V4SI),parallel)
> REG_DEAD r146:V4SI
> REG_DEAD r141:V4SI
> 24: {r151:SI=vec_select(r150:V4SI,parallel);clobber scratch;}
> ...
> Successfully matched this instruction:
> (set (reg:SI 151)
> (vec_select:SI (reg:V4SI 141)
> (parallel [
> (const_int 3 [0x3])
> ])))
>
> shouldn't that be (vec_select:SI (reg:V4SI 146) ...)? Or does
> (vec_concat:V8SI (xx:V4SI xx:V4SI)) magically swap the two V4SI vectors?
Ah, no, the combination looks correct to me. After all the select in 21
interleaves the two inputs.
More information about the Gcc-bugs
mailing list