Commit f80d6a17 by Alexander Monakov Committed by Alexander Monakov

i386: do not use SImode mul-highpart on 64-bit (PR 82418)

	PR target/82418
	* config/i386/i386.md (<s>mul<mode>3_highpart): Use DWIH mode iterator
	instead of SWI48.

testsuite/
	* gcc.target/i386/pr82418.c: New test.

From-SVN: r263467
parent 1e9168b2
2018-08-10 Alexander Monakov <amonakov@ispras.ru>
PR target/82418
* config/i386/i386.md (<s>mul<mode>3_highpart): Use DWIH mode iterator
instead of SWI48.
2018-08-10 Martin Liska <mliska@suse.cz>
PR target/83610
......
......@@ -7792,16 +7792,16 @@
(set_attr "mode" "QI")])
(define_expand "<s>mul<mode>3_highpart"
[(parallel [(set (match_operand:SWI48 0 "register_operand")
(truncate:SWI48
[(parallel [(set (match_operand:DWIH 0 "register_operand")
(truncate:DWIH
(lshiftrt:<DWI>
(mult:<DWI>
(any_extend:<DWI>
(match_operand:SWI48 1 "nonimmediate_operand"))
(match_operand:DWIH 1 "nonimmediate_operand"))
(any_extend:<DWI>
(match_operand:SWI48 2 "register_operand")))
(match_operand:DWIH 2 "register_operand")))
(match_dup 3))))
(clobber (match_scratch:SWI48 4))
(clobber (match_scratch:DWIH 4))
(clobber (reg:CC FLAGS_REG))])]
""
"operands[3] = GEN_INT (GET_MODE_BITSIZE (<MODE>mode));")
......
2018-08-10 Alexander Monakov <amonakov@ispras.ru>
PR target/82418
* gcc.target/i386/pr82418.c: New test.
2018-08-10 Martin Liska <mliska@suse.cz>
PR target/83610
......
/* PR target/82418 */
/* { dg-do compile { target { ! ia32 } } } */
/* { dg-options "-O2" } */
/* { dg-final { scan-assembler "imul\[^\n\r]*1374389535" } } */
unsigned
f1(unsigned x)
{
return x / 100;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment