Index: i386.md =================================================================== RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.md,v retrieving revision 1.562 diff -u -r1.562 i386.md --- i386.md 18 Oct 2004 13:01:31 -0000 1.562 +++ i386.md 18 Oct 2004 13:36:27 -0000 @@ -4181,6 +4181,15 @@ (set_attr "mode" "SF") (set_attr "athlon_decode" "double,vector")]) +(define_peephole2 + [(set (match_operand:SF 0 "register_operand" "") + (match_operand:SF 1 "memory_operand" "")) + (set (match_operand:DI 2 "register_operand" "") + (fix:DI (match_dup 0)))] + "!TARGET_K8" + [(set (match_dup 2) (fix:DI (match_dup 1)))] + "") + ;; Avoid vector decoded form of the instruction. (define_peephole2 [(match_scratch:SF 2 "x") @@ -4200,6 +4209,15 @@ (set_attr "mode" "DF") (set_attr "athlon_decode" "double,vector")]) +(define_peephole2 + [(set (match_operand:DF 0 "register_operand" "") + (match_operand:DF 1 "memory_operand" "")) + (set (match_operand:DI 2 "register_operand" "") + (fix:DI (match_dup 0)))] + "!TARGET_K8" + [(set (match_dup 2) (fix:DI (match_dup 1)))] + "") + ;; Avoid vector decoded form of the instruction. (define_peephole2 [(match_scratch:DF 2 "Y") @@ -4318,6 +4336,15 @@ (set_attr "mode" "DF") (set_attr "athlon_decode" "double,vector")]) +(define_peephole2 + [(set (match_operand:SF 0 "register_operand" "") + (match_operand:SF 1 "memory_operand" "")) + (set (match_operand:SI 2 "register_operand" "") + (fix:SI (match_dup 0)))] + "!TARGET_K8" + [(set (match_dup 2) (fix:SI (match_dup 1)))] + "") + ;; Avoid vector decoded form of the instruction. (define_peephole2 [(match_scratch:SF 2 "x") @@ -4337,6 +4364,15 @@ (set_attr "mode" "DF") (set_attr "athlon_decode" "double,vector")]) +(define_peephole2 + [(set (match_operand:DF 0 "register_operand" "") + (match_operand:DF 1 "memory_operand" "")) + (set (match_operand:SI 2 "register_operand" "") + (fix:SI (match_dup 0)))] + "!TARGET_K8" + [(set (match_dup 2) (fix:SI (match_dup 1)))] + "") + ;; Avoid vector decoded form of the instruction. (define_peephole2 [(match_scratch:DF 2 "Y") @@ -4405,7 +4441,7 @@ && !reload_completed && !reload_in_progress && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))" "#" - "" + "&& 1" [(const_int 0)] { ix86_optimize_mode_switching = 1;