diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f4fe95fd0f3d766b72c2747f8f01e3210e94bdac..d647fd4654239bbf38ce8a14b4e70e1e098b7ae7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-05-14  Andrew MacLeod  <amacleod@redhat.com>
+
+	* config/ia64/lib1funcs.asm (__divtf3): Fix incorrect bits in
+	extended precision divide.
+
 2001-05-14  Andrew MacLeod  <amacleod@redhat.com>
 
 	* config/ia64/ia64.c (rtx_needs_barrier): Call rtx_needs_barrier
diff --git a/gcc/config/ia64/lib1funcs.asm b/gcc/config/ia64/lib1funcs.asm
index 67f0a89ce61403267c8fdc9dfa8fc4be305d9302..75e79b0a0f73e7044909ffc44697fcb8a3b31142 100644
--- a/gcc/config/ia64/lib1funcs.asm
+++ b/gcc/config/ia64/lib1funcs.asm
@@ -17,27 +17,26 @@ __divtf3:
 (p6)	cmp.ne p7, p0 = r0, r0
 	.pred.rel.mutex p6, p7
 (p6)	fnma.s1 f11 = farg1, f10, f1
-(p6)	fmpy.s1 f12 = farg0, f10
+(p6)	fma.s1 f12 = farg0, f10, f0
 	;;
-(p6)	fmpy.s1 f13 = f11, f11
+(p6)	fma.s1 f13 = f11, f11, f0
 (p6)	fma.s1 f14 = f11, f11, f11
 	;;
 (p6)	fma.s1 f11 = f13, f13, f11
 (p6)	fma.s1 f13 = f14, f10, f10
 	;;
 (p6)	fma.s1 f10 = f13, f11, f10
-(p6)	fnma.s1 f12 = farg1, f12, farg0
+(p6)	fnma.s1 f11 = farg1, f12, farg0
 	;;
 (p6)	fma.s1 f11 = f11, f10, f12
-(p6)	fnma.s1 f13 = farg1, f10, f1
+(p6)	fnma.s1 f12 = farg1, f10, f1
 	;;
 (p6)	fma.s1 f10 = f12, f10, f10
 (p6)	fnma.s1 f12 = farg1, f11, farg0
 	;;
-(p6)	fma fret0 = f12, f10, f11
+(p6)	fma.s0 fret0 = f12, f10, f11
 (p7)	mov fret0 = f10
 	br.ret.sptk rp
-	;;
 	.endp __divtf3
 #endif