summaryrefslogtreecommitdiff
path: root/gcc/config/ia64/ia64.md
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2005-01-11 08:57:24 +0000
committerJan Beulich <jbeulich@gcc.gnu.org>2005-01-11 08:57:24 +0000
commitd3f6e07b9a129f1f090e4290c54448cacc0e0eb1 (patch)
treeaad1291a450f97a162364c0fcab22912ff8800e0 /gcc/config/ia64/ia64.md
parent201dd46b9827597fdc60534fd9de31f36f998be3 (diff)
downloadgcc-d3f6e07b9a129f1f090e4290c54448cacc0e0eb1.tar.gz
ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
gcc/ 2005-01-11 Jan Beulich <jbeulich@novell.com> * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4. Change respective itanium_class attribute to ialu. (shladdp4_internal): New. * config/ia64/predicates.md (shladd_log2_operand): New. From-SVN: r93178
Diffstat (limited to 'gcc/config/ia64/ia64.md')
-rw-r--r--gcc/config/ia64/ia64.md13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md
index 8ce878d0c43..a41398d1cd8 100644
--- a/gcc/config/ia64/ia64.md
+++ b/gcc/config/ia64/ia64.md
@@ -866,10 +866,10 @@
(match_operand:SI 1 "grfr_nonimmediate_operand" "r,m,f")))]
""
"@
- zxt4 %0 = %1
+ addp4 %0 = %1, r0
ld4%O1 %0 = %1%P1
fmix.r %0 = f0, %1"
- [(set_attr "itanium_class" "xtd,ld,fmisc")])
+ [(set_attr "itanium_class" "ialu,ld,fmisc")])
;; Convert between floating point types of different sizes.
@@ -1138,6 +1138,15 @@
[(set_attr "itanium_class" "ishf")])
;; Combine doesn't like to create bit-field insertions into zero.
+(define_insn "*shladdp4_internal"
+ [(set (match_operand:DI 0 "gr_register_operand" "=r")
+ (and:DI (ashift:DI (match_operand:DI 1 "gr_register_operand" "r")
+ (match_operand:DI 2 "shladd_log2_operand" "n"))
+ (match_operand:DI 3 "const_int_operand" "n")))]
+ "ia64_depz_field_mask (operands[3], operands[2]) + INTVAL (operands[2]) == 32"
+ "shladdp4 %0 = %1, %2, r0"
+ [(set_attr "itanium_class" "ialu")])
+
(define_insn "*depz_internal"
[(set (match_operand:DI 0 "gr_register_operand" "=r")
(and:DI (ashift:DI (match_operand:DI 1 "gr_register_operand" "r")