Commit 053c2b87 by Andrew Pinski Committed by Andrew Pinski

bswap-1.c: New testcase.

2012-07-16  Andrew Pinski  <apinski@cavium.com>

        * gcc.c-torture/execute/bswap-1.c: New testcase.
        * gcc.c-torture/compile/unalign-1.c: New testcase.
        * gcc.c-torture/compile/20120524-1.c: New testcase.
        * gcc.c-torture/compile/20101216-1.c: New testcase.

From-SVN: r189543
parent 4cca007e
2012-07-16 Andrew Pinski <apinski@cavium.com>
* gcc.c-torture/execute/bswap-1.c: New testcase.
* gcc.c-torture/compile/unalign-1.c: New testcase.
* gcc.c-torture/compile/20120524-1.c: New testcase.
* gcc.c-torture/compile/20101216-1.c: New testcase.
2012-07-16 Dehao Chen <dehao@google.com>
Revert
......
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
typedef union
{
double value;
struct
{
__uint32_t msw;
__uint32_t lsw;
} parts;
} ieee_double_shape_type;
two52= 4.50359962737049600000e+15,
w6 = -1.63092934096575273989e-03;
double sin_pi(double x)
{
double y,z;
__int32_t n,ix;
ieee_double_shape_type gh_u;
gh_u.value = (x);
(ix) = gh_u.parts.msw;
if(ix<0x43300000)
z = y+two52;
ieee_double_shape_type gl_u;
gl_u.value = (z);
(n) = gl_u.parts.lsw;
n &= 1;
switch (n)
{
case 0:
__kernel_sin();
}
}
char CJPAT_Packet[1508] = {};
void build_packet(int port, char *packet) {
memcpy(packet, CJPAT_Packet, sizeof(CJPAT_Packet));
}
typedef struct __attribute__ ((__packed__))
{
char valueField[2];
} ptp_tlv_t;
typedef struct __attribute__ ((__packed__))
{
char stepsRemoved;
ptp_tlv_t tlv[1];
} ptp_message_announce_t;
int ptplib_send_announce(int sequenceId, int i)
{
ptp_message_announce_t tx_packet;
((long long *)tx_packet.tlv[0].valueField)[sequenceId] = i;
f(&tx_packet);
}
/* Test __builtin_bswap64 . */
unsigned long long g(unsigned long long a) __attribute__((noinline));
unsigned long long g(unsigned long long a)
{
return __builtin_bswap64(a);
}
unsigned long long f(unsigned long long c)
{
union {
unsigned long long a;
unsigned char b[8];
} a, b;
a.a = c;
b.b[0] = a.b[7];
b.b[1] = a.b[6];
b.b[2] = a.b[5];
b.b[3] = a.b[4];
b.b[4] = a.b[3];
b.b[5] = a.b[2];
b.b[6] = a.b[1];
b.b[7] = a.b[0];
return b.a;
}
int main(void)
{
unsigned long long i;
/* The rest of the testcase assumes 8 byte long long. */
if (sizeof(i) != sizeof(char)*8)
return 0;
if (f(0x12) != g(0x12))
__builtin_abort();
if (f(0x1234) != g(0x1234))
__builtin_abort();
if (f(0x123456) != g(0x123456))
__builtin_abort();
if (f(0x12345678ull) != g(0x12345678ull))
__builtin_abort();
if (f(0x1234567890ull) != g(0x1234567890ull))
__builtin_abort();
if (f(0x123456789012ull) != g(0x123456789012ull))
__builtin_abort();
if (f(0x12345678901234ull) != g(0x12345678901234ull))
__builtin_abort();
if (f(0x1234567890123456ull) != g(0x1234567890123456ull))
__builtin_abort();
return 0;
}
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