re PR target/92744 (error: insn does not satisfy its constraints since r278439)

PR target/92744
	* config/i386/i386.md (peephole2 for *swap<mode>): Use
	general_reg_operand predicates instead of register_operand.

	* g++.dg/dfp/pr92744.C: New test.

From-SVN: r278924
This commit is contained in:
Uros Bizjak 2019-12-03 09:23:06 +01:00 committed by Jakub Jelinek
parent 6fcb7ebb37
commit a4c772e26d
4 changed files with 33 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2019-12-03 Uroš Bizjak <ubizjak@gmail.com>
Jakub Jelinek <jakub@redhat.com>
PR target/92744
* config/i386/i386.md (peephole2 for *swap<mode>): Use
general_reg_operand predicates instead of register_operand.
2019-12-03 Richard Biener <rguenther@suse.de>
PR tree-optimization/92645

View File

@ -2788,10 +2788,10 @@
(set_attr "bdver1_decode" "double")])
(define_peephole2
[(set (match_operand:SWI 0 "register_operand")
(match_operand:SWI 1 "register_operand"))
[(set (match_operand:SWI 0 "general_reg_operand")
(match_operand:SWI 1 "general_reg_operand"))
(set (match_dup 1)
(match_operand:SWI 2 "register_operand"))
(match_operand:SWI 2 "general_reg_operand"))
(set (match_dup 2) (match_dup 0))]
"peep2_reg_dead_p (3, operands[0])
&& optimize_insn_for_size_p ()"

View File

@ -1,5 +1,8 @@
2019-12-03 Jakub Jelinek <jakub@redhat.com>
PR target/92744
* g++.dg/dfp/pr92744.C: New test.
PR c++/92732
* g++.dg/cpp2a/bitfield3.C: Don't expect narrowing conversion
warnings.

View File

@ -0,0 +1,20 @@
// PR target/92744
// { dg-do compile }
// { dg-options "-Os -fno-tree-ccp" }
typedef float T __attribute__((mode(SD)));
struct A { T a; };
void foo ();
bool
operator!= (A x, A y)
{
return x.a != y.a;
}
void
bar (A x, A y)
{
if (x != y)
foo ();
}