Skip to content

Commit ca76ee4

Browse files
author
wilco
committed
Remove '*' from movsi/di/ti patterns
Remove the remaining uses of '*' from the movsi/di/ti patterns. Using '*' in alternatives is typically incorrect at it tells the register allocator to ignore those alternatives. So remove these from all the integer move patterns. This removes unnecessary int to float moves, for example gcc.target/aarch64/pr62178.c no longer generates a redundant fmov since the w = m variant is now allowed. gcc/ * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'. (movdi_aarch64): Likewise. (movti_aarch64): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@252033 138bc75d-0d04-0410-961f-82ee72b054a4
1 parent 8b917ce commit ca76ee4

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

gcc/ChangeLog

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
2017-09-02 Simon Wright <[email protected]>
1+
2017-09-12 Wilco Dijkstra <[email protected]>
2+
3+
* config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
4+
(movdi_aarch64): Likewise.
5+
(movti_aarch64): Likewise.
6+
7+
2017-09-12 Simon Wright <[email protected]>
28

39
PR target/80204
410
* config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
@@ -15,16 +21,16 @@
1521

1622
2017-09-12 Carl Love <[email protected]>
1723

18-
* config/rs6000/altivec.md (vec_widen_umult_even_v4si,
24+
* config/rs6000/altivec.md (vec_widen_umult_even_v4si,
1925
vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
2026
vmulouw, vmulosw.
21-
* config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
22-
VMULOSW): Add definitions.
23-
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24-
ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
25-
ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
26-
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
27-
builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
27+
* config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
28+
VMULOSW): Add definitions.
29+
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30+
ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
31+
ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
32+
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
33+
builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
2834

2935
2017-09-12 James Greenhalgh <[email protected]>
3036

gcc/config/aarch64/aarch64.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -932,8 +932,8 @@
932932
)
933933

934934
(define_insn_and_split "*movsi_aarch64"
935-
[(set (match_operand:SI 0 "nonimmediate_operand" "=r,k,r,r,r,r,*w,m, m,r,r ,*w, r,*w,w")
936-
(match_operand:SI 1 "aarch64_mov_operand" " r,r,k,M,n,m, m,rZ,*w,Usa,Ush,rZ,w,*w,Ds"))]
935+
[(set (match_operand:SI 0 "nonimmediate_operand" "=r,k,r,r,r,r,w, m, m, r, r, w,r,w, w")
936+
(match_operand:SI 1 "aarch64_mov_operand" " r,r,k,M,n,m,m,rZ,*w,Usa,Ush,rZ,w,w,Ds"))]
937937
"(register_operand (operands[0], SImode)
938938
|| aarch64_reg_or_zero (operands[1], SImode))"
939939
"@
@@ -966,8 +966,8 @@
966966
)
967967

968968
(define_insn_and_split "*movdi_aarch64"
969-
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,k,r,r,r,r,r,*w,m, m,r,r, *w,r,*w,w")
970-
(match_operand:DI 1 "aarch64_mov_operand" " r,r,k,N,M,n,m, m,rZ,*w,Usa,Ush,rZ,w,*w,Dd"))]
969+
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,k,r,r,r,r,r,w, m,m, r, r, w,r,w, w")
970+
(match_operand:DI 1 "aarch64_mov_operand" " r,r,k,N,M,n,m,m,rZ,w,Usa,Ush,rZ,w,w,Dd"))]
971971
"(register_operand (operands[0], DImode)
972972
|| aarch64_reg_or_zero (operands[1], DImode))"
973973
"@
@@ -1023,9 +1023,9 @@
10231023

10241024
(define_insn "*movti_aarch64"
10251025
[(set (match_operand:TI 0
1026-
"nonimmediate_operand" "=r, *w,r ,*w,r,m,m,*w,m")
1026+
"nonimmediate_operand" "=r, w,r,w,r,m,m,w,m")
10271027
(match_operand:TI 1
1028-
"aarch64_movti_operand" " rn,r ,*w,*w,m,r,Z, m,*w"))]
1028+
"aarch64_movti_operand" " rn,r,w,w,m,r,Z,m,w"))]
10291029
"(register_operand (operands[0], TImode)
10301030
|| aarch64_reg_or_zero (operands[1], TImode))"
10311031
"@

0 commit comments

Comments
 (0)