aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/os/stat_aix.go
diff options
context:
space:
mode:
authorKewen Lin <linkw@linux.ibm.com>2024-08-21 00:26:20 -0500
committerKewen Lin <linkw@gcc.gnu.org>2024-08-21 00:26:20 -0500
commit34292a1ae89a13baf974ff2ecb21dcf89aab4617 (patch)
treed4e96175c8355c8ff6f05c4a14dc82484be84c5b /libgo/go/os/stat_aix.go
parentae53e4b99eaad43424f2b0cc1bbabb3b454fb6d8 (diff)
downloadgcc-master.zip
gcc-master.tar.gz
gcc-master.tar.bz2
rs6000: Remove "+" constraint modifier from *vsx_le_perm_store_* insnsHEADtrunkmaster
Since *vsx_le_perm_store_* can be split into vector permute and vector store, after reload_completed, we reuse the operand 1 as the destination of vector permute, so we set operand 1 with constraint modifier "+". But since it's taken as pure input in DF and most passes as Richard pointed out in [1], to ensure it's correct when operand 1 is still live, we actually restore the operand 1's value after the store with vector permute, that is: op1 = vector permute op1 (doubleword swapping) op0 = op2 op1 = vector permute op1 (doubleword swapping) , it means op1's value isn't changed by this insn. So according to the comments from Richard and Segher in that thread, this patch is to remove the "+" constraint modifier of operand 1 from *vsx_le_perm_store_* insns. [1] https://gcc.gnu.org/pipermail/gcc-patches/2024-August/660145.html gcc/ChangeLog: * config/rs6000/vsx.md (define_insn *vsx_le_perm_store_{<VSX_D:mode>, <VSX_W:mode>,v8hi,v16qi,<VSX_LE_128:mode>}): Remove constraint modifier "+" from operand 1.
Diffstat (limited to 'libgo/go/os/stat_aix.go')
0 files changed, 0 insertions, 0 deletions