re PR tree-optimization/64910 (tree reassociation results in poor code)
PR tree-optimization/64910 * config/i386/i386.md (testqi_ext_3): Allow HImode. PR tree-optimization/64910 * gcc.target/i386/bittest.c: New test. From-SVN: r231871
This commit is contained in:
parent
58688a4ec0
commit
091534a9f4
4 changed files with 33 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2015-12-20 Jeff Law <law@redhat.com>
|
||||
|
||||
PR tree-optimization/64910
|
||||
* config/i386/i386.md (testqi_ext_3): Allow HImode.
|
||||
|
||||
2015-12-20 Andrew Pinsi <apinski@cavium.com>
|
||||
|
||||
* config/aarch64/atomics.md
|
||||
|
|
|
@ -7868,7 +7868,7 @@
|
|||
;; Combine likes to form bit extractions for some tests. Humor it.
|
||||
(define_insn "*testqi_ext_3"
|
||||
[(set (reg FLAGS_REG)
|
||||
(compare (zero_extract:SWI48
|
||||
(compare (zero_extract:SWI248
|
||||
(match_operand 0 "nonimmediate_operand" "rm")
|
||||
(match_operand 1 "const_int_operand" "n")
|
||||
(match_operand 2 "const_int_operand" "n"))
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-12-20 Jeff Law <law@redhat.com>
|
||||
|
||||
PR tree-optimization/64910
|
||||
* gcc.target/i386/bittest.c: New test.
|
||||
|
||||
2015-12-20 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gnat.dg/complex1.adb: New test.
|
||||
|
|
22
gcc/testsuite/gcc.target/i386/bittest.c
Normal file
22
gcc/testsuite/gcc.target/i386/bittest.c
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2" } */
|
||||
|
||||
extern int dbg_cnt (void);
|
||||
|
||||
struct function
|
||||
{
|
||||
unsigned int calls_setjmp:1;
|
||||
};
|
||||
extern struct function *cfun;
|
||||
unsigned char
|
||||
gate_rtl_cprop (void)
|
||||
{
|
||||
return !(cfun + 0)->calls_setjmp && dbg_cnt ();
|
||||
}
|
||||
|
||||
/* This should be implementable without performing a bitmask as we can
|
||||
just use a test imm,mem. So instructions which load the object from
|
||||
memory and mask off bits are unnecessary. In theory we can just count
|
||||
the move-with-extension, and and testb instructions. There should be
|
||||
only one. */
|
||||
/* { dg-final { scan-assembler-times "movzbl|and|testb" 1 { target { i?86-*-* x86_64-*-*} } } } */
|
Loading…
Add table
Reference in a new issue