summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-04-20 05:58:10 +0000
committerChris Lattner <sabre@nondot.org>2006-04-20 05:58:10 +0000
commit0cd0065c58ee986347254e5cdcc969a248c5b24e (patch)
treefb5dfc8bb02d520b5f8b67b9a1930e9de3d26fb1 /llvm/lib
parent4ae41a35566bec1ff8eb5bd815f3f3d019c86881 (diff)
downloadbcm5719-llvm-0cd0065c58ee986347254e5cdcc969a248c5b24e.tar.gz
bcm5719-llvm-0cd0065c58ee986347254e5cdcc969a248c5b24e.zip
Make sure that the new instructions selected have the right type. This fixes
CodeGen/PowerPC/2006-04-19-vmaddfp-crash.ll llvm-svn: 27868
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/PowerPC/PPCInstrAltivec.td10
1 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCInstrAltivec.td b/llvm/lib/Target/PowerPC/PPCInstrAltivec.td
index 2cb4cdac22d..1e9ea47385f 100644
--- a/llvm/lib/Target/PowerPC/PPCInstrAltivec.td
+++ b/llvm/lib/Target/PowerPC/PPCInstrAltivec.td
@@ -603,20 +603,20 @@ def : Pat<(v4i32 (and VRRC:$A, (vnot_conv VRRC:$B))),
(v4i32 (VANDC VRRC:$A, VRRC:$B))>;
def : Pat<(fmul VRRC:$vA, VRRC:$vB),
- (VMADDFP VRRC:$vA, VRRC:$vB, (v4i32 (V_SET0)))>;
+ (v4f32 (VMADDFP VRRC:$vA, VRRC:$vB, (v4f32 (V_SET0))))>;
// Fused multiply add and multiply sub for packed float. These are represented
// separately from the real instructions above, for operations that must have
// the additional precision, such as Newton-Rhapson (used by divide, sqrt)
def : Pat<(PPCvmaddfp VRRC:$A, VRRC:$B, VRRC:$C),
- (VMADDFP VRRC:$A, VRRC:$B, VRRC:$C)>;
+ (v4f32 (VMADDFP VRRC:$A, VRRC:$B, VRRC:$C))>;
def : Pat<(PPCvnmsubfp VRRC:$A, VRRC:$B, VRRC:$C),
- (VNMSUBFP VRRC:$A, VRRC:$B, VRRC:$C)>;
+ (v4f32 (VNMSUBFP VRRC:$A, VRRC:$B, VRRC:$C))>;
def : Pat<(int_ppc_altivec_vmaddfp VRRC:$A, VRRC:$B, VRRC:$C),
- (VMADDFP VRRC:$A, VRRC:$B, VRRC:$C)>;
+ (v4f32 (VMADDFP VRRC:$A, VRRC:$B, VRRC:$C))>;
def : Pat<(int_ppc_altivec_vnmsubfp VRRC:$A, VRRC:$B, VRRC:$C),
- (VNMSUBFP VRRC:$A, VRRC:$B, VRRC:$C)>;
+ (v4f32 (VNMSUBFP VRRC:$A, VRRC:$B, VRRC:$C))>;
def : Pat<(PPCvperm (v16i8 VRRC:$vA), VRRC:$vB, VRRC:$vC),
(v16i8 (VPERM VRRC:$vA, VRRC:$vB, VRRC:$vC))>;
OpenPOWER on IntegriCloud