i386.md (floatunssi<mode>2 expand): Add new expand for QI/HImode operand to produce more effictive code for...
* config/i386/i386.md (floatunssi<mode>2 expand): Add new expand for QI/HImode operand to produce more effictive code for unsigned char(short) --> float(double) conversion. From-SVN: r201663
This commit is contained in:
parent
94109a6a3a
commit
15dd8b3a8c
@ -1,3 +1,9 @@
|
||||
2013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
|
||||
|
||||
* config/i386/i386.md (floatunssi<mode>2 expand): Add new
|
||||
expand for QI/HImode operand to produce more effictive code for
|
||||
unsigned char(short) --> float(double) conversion.
|
||||
|
||||
2013-08-12 Alexander Monakov <amonakov@ispras.ru>
|
||||
|
||||
* doc/invoke.texi: Mention that -ftls-model does not force the final
|
||||
|
@ -5037,6 +5037,18 @@
|
||||
&& reload_completed"
|
||||
[(set (match_dup 0) (float:X87MODEF (match_dup 1)))])
|
||||
|
||||
(define_expand "floatuns<SWI12:mode><X87MODEF:mode>2"
|
||||
[(set (match_operand:X87MODEF 0 "register_operand")
|
||||
(unsigned_float:X87MODEF
|
||||
(match_operand:SWI12 1 "nonimmediate_operand")))]
|
||||
"!TARGET_64BIT
|
||||
&& SSE_FLOAT_MODE_P (<X87MODEF:MODE>mode) && TARGET_SSE_MATH"
|
||||
{
|
||||
operands[1] = convert_to_mode (SImode, operands[1], 1);
|
||||
emit_insn (gen_floatsi<X87MODEF:mode>2 (operands[0], operands[1]));
|
||||
DONE;
|
||||
})
|
||||
|
||||
;; Avoid store forwarding (partial memory) stall penalty by extending
|
||||
;; SImode value to DImode through XMM register instead of pushing two
|
||||
;; SImode values to stack. Note that even !TARGET_INTER_UNIT_MOVES_TO_VEC
|
||||
|
Loading…
x
Reference in New Issue
Block a user