http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55987
--- Comment #2 from Tilman Sauerbeck 2013-02-15
16:50:52 UTC ---
Created attachment 29470
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29470
dejagnu testcase
Simplified dejagnu test case.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56110
--- Comment #1 from Tilman Sauerbeck 2013-02-16
16:49:34 UTC ---
Changing the literal in the test function so that it fits in 8 bits makes gcc
go with the TST instruction instead of AND+CMP:
unsigned f2 (unsigned x, unsigned m)
{
i
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56110
--- Comment #2 from Tilman Sauerbeck 2013-03-16
09:01:17 UTC ---
Created attachment 29677
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29677
WIP patch
I'm not really sure if this patch is good or bad. The discussion on the ML die
: target
Assignee: unassigned at gcc dot gnu.org
Reporter: til...@code-monkey.de
The C snippet below contains two lines which AFAICS should be equivalent, but
depending on which of the two is used, gcc will either generate "good" (few
instructions) or "bad" (mor
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59689
--- Comment #2 from Tilman Sauerbeck ---
Sigh, I wondered about that but wasn't sure. Sorry about the noise.
: P3
Component: pending
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: til...@code-monkey.de
Target: arm
For this code
uint32_t add (uint32_t x, uint32_t y)
{
uint32_t a, b;
a = (x & 0x7f7f7f7f) + (y & 0x7f7f7f7f);
b
Priority: P3
Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: til...@code-monkey.de
Compiling this snippet
unsigned f1 (unsigned x, unsigned m)
{
x >>= ((m & 0x008080) ? 8 : 0);
return x;
}
with gcc 4.7.2 gives this code
Priority: P3
Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: til...@code-monkey.de
Target: arm
Compiling this code
unsigned f1 (unsigned x, unsigned m)
{
if (m & 0x008080)
x >>= 8;
return x;
}