Commit 5c1aec7e by Georg-Johann Lay Committed by Georg-Johann Lay

re PR testsuite/52641 (Test cases fail for 16-bit int targets)

	PR testsuite/52641
	* gcc.c-torture/execute/pr81913.c: Use types that also work for int16.
	* gcc.c-torture/execute/20180112-1.c: Dito.
	* gcc.c-torture/execute/pr81503.c: Dito.
	* gcc.dg/store_merging_12.c: Dito.
	* gcc.dg/tree-ssa/loop-niter-1.c: Dito.
	* gcc.dg/tree-ssa/loop-niter-2.c: Dito.
	* gcc.dg/tree-ssa/pr80898.c: Dito.
	* gcc.dg/tree-ssa/pr82363.c: Dito.
	* gcc.dg/utf16-4.c: Also allow "short unsigned int" in dg-warning.
	* gcc.dg/tree-ssa/pr81346-5.c: Special-case int16.
	* gcc.dg/tree-ssa/ssa-sink-11.c: Dito.
	* gcc.dg/tree-ssa/ssa-sink-12.c: Dito.
	* gcc.dg/torture/pr81814.c: Restrict to int32plus.
	* gcc.dg/tree-ssa/pr80803.c: Dito.
	* gcc.dg/tree-ssa/pr80898-2.c: Dito.
	* gcc.dg/tree-ssa/pr81346-4.c: Dito.
	* gcc.dg/tree-ssa/vrp114.c: Dito.
	* gcc.dg/tree-ssa/pr82574.c: Restrict to size32plus.
	* gcc.dg/tree-ssa/ssa-dom-thread-13.c: Dito.
	* gcc.dg/tree-ssa/ssa-sink-15.c: Dito.

From-SVN: r257327
parent e8a5a6f6
2018-02-02 Georg-Johann Lay <avr@gjlay.de>
PR testsuite/52641
* gcc.c-torture/execute/pr81913.c: Use types that also work for int16.
* gcc.c-torture/execute/20180112-1.c: Dito.
* gcc.c-torture/execute/pr81503.c: Dito.
* gcc.dg/store_merging_12.c: Dito.
* gcc.dg/tree-ssa/loop-niter-1.c: Dito.
* gcc.dg/tree-ssa/loop-niter-2.c: Dito.
* gcc.dg/tree-ssa/pr80898.c: Dito.
* gcc.dg/tree-ssa/pr82363.c: Dito.
* gcc.dg/utf16-4.c: Also allow "short unsigned int" in dg-warning.
* gcc.dg/tree-ssa/pr81346-5.c: Special-case int16.
* gcc.dg/tree-ssa/ssa-sink-11.c: Dito.
* gcc.dg/tree-ssa/ssa-sink-12.c: Dito.
* gcc.dg/torture/pr81814.c: Restrict to int32plus.
* gcc.dg/tree-ssa/pr80803.c: Dito.
* gcc.dg/tree-ssa/pr80898-2.c: Dito.
* gcc.dg/tree-ssa/pr81346-4.c: Dito.
* gcc.dg/tree-ssa/vrp114.c: Dito.
* gcc.dg/tree-ssa/pr82574.c: Restrict to size32plus.
* gcc.dg/tree-ssa/ssa-dom-thread-13.c: Dito.
* gcc.dg/tree-ssa/ssa-sink-15.c: Dito.
2018-02-02 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 2018-02-02 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
PR target/84066 PR target/84066
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
extern void abort (void); extern void abort (void);
typedef unsigned int u32; typedef __UINT32_TYPE__ u32;
u32 bug (u32 * result) __attribute__((noinline)); u32 bug (u32 * result) __attribute__((noinline));
u32 bug (u32 * result) u32 bug (u32 * result)
......
unsigned short a = 41461; unsigned short a = 41461;
unsigned short b = 3419; unsigned short b = 3419;
#if __SIZEOF_INT__ >= 4
int c = 0; int c = 0;
void foo() { void foo() {
if (a + b * ~(0 != 5)) if (a + b * ~(0 != 5))
c = -~(b * ~(0 != 5)) + 2147483647; c = -~(b * ~(0 != 5)) + 2147483647;
} }
#else
__INT32_TYPE__ c = 0;
void foo() {
if (a + b * ~((__INT32_TYPE__)(0 != 5)))
c = -~(b * ~((__INT32_TYPE__)(0 != 5))) + 2147483647;
}
#endif
int main() { int main() {
foo(); foo();
......
/* PR tree-optimization/81913 */ /* PR tree-optimization/81913 */
typedef unsigned char u8; typedef __UINT8_TYPE__ u8;
typedef unsigned int u32; typedef __UINT32_TYPE__ u32;
static u32 static u32
b (u8 d, u32 e, u32 g) b (u8 d, u32 e, u32 g)
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -Wall" } */ /* { dg-options "-O2 -Wall" } */
#if __SIZEOF_INT__ == 2
#define int long
#endif
struct S { unsigned int b1:1, b2:1, b3:1, b4:1, b5:1, b6:27; }; struct S { unsigned int b1:1, b2:1, b3:1, b4:1, b5:1, b6:27; };
void bar (struct S *); void bar (struct S *);
void foo (int x) void foo (int x)
......
/* PR middle-end/81814 */ /* PR middle-end/81814 */
/* { dg-do run } */ /* { dg-do run { target int32plus } } */
int int
main () main ()
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* { dg-options "-O2 -fdump-tree-sccp-details" } */ /* { dg-options "-O2 -fdump-tree-sccp-details" } */
typedef unsigned char u8; typedef unsigned char u8;
typedef unsigned int u32; typedef __UINT32_TYPE__ u32;
static u32 static u32
b (u8 d, u32 e, u32 g) b (u8 d, u32 e, u32 g)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* { dg-options "-O2 -fdump-tree-sccp-details" } */ /* { dg-options "-O2 -fdump-tree-sccp-details" } */
typedef unsigned char u8; typedef unsigned char u8;
typedef unsigned int u32; typedef __UINT32_TYPE__ u32;
static u32 static u32
b (u8 d, u32 e, u32 g) b (u8 d, u32 e, u32 g)
......
/* { dg-do run } */ /* { dg-do run { target int32plus } } */
/* { dg-options "-O" } */ /* { dg-options "-O" } */
struct S0 struct S0
......
/* { dg-do run } */ /* { dg-do run { target int32plus } } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
struct S0 struct S0
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
struct S0 { struct S0 {
int f0 : 24; __INT32_TYPE__ f0 : 24;
int f1; __INT32_TYPE__ f1;
int f74; __INT32_TYPE__ f74;
} a, *c = &a; } a, *c = &a;
struct S0 fn1() { struct S0 fn1() {
struct S0 b = {4, 3}; struct S0 b = {4, 3};
......
/* PR tree-optimization/81346 */ /* PR tree-optimization/81346 */
/* { dg-do run } */ /* { dg-do run { target int32plus } } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
#include "pr81346-3.c" #include "pr81346-3.c"
......
/* PR tree-optimization/81346 */ /* PR tree-optimization/81346 */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized" } */ /* { dg-options "-O2 -fdump-tree-optimized" } */
/* { dg-final { scan-tree-dump-times "\\(signed int\\) x" 10 "optimized" } } */ /* { dg-final { scan-tree-dump-times "\\(signed int\\) x" 10 "optimized" { target int32plus } } } */
/* { dg-final { scan-tree-dump-times "\\(signed short\\) x" 10 "optimized" { target int16 } } } */
/* { dg-final { scan-tree-dump-times " <= 0;" 5 "optimized" } } */ /* { dg-final { scan-tree-dump-times " <= 0;" 5 "optimized" } } */
/* { dg-final { scan-tree-dump-times " > 0;" 5 "optimized" } } */ /* { dg-final { scan-tree-dump-times " > 0;" 5 "optimized" } } */
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O" } */ /* { dg-options "-O" } */
#if __SIZEOF_INT__ == 2
#define int __INT32_TYPE__
#endif
struct A struct A
{ {
int b; int b;
...@@ -34,6 +38,8 @@ test_l (void) ...@@ -34,6 +38,8 @@ test_l (void)
__builtin_abort (); __builtin_abort ();
} }
#undef int
int main () int main ()
{ {
while (1) while (1)
......
/* { dg-do run } */ /* { dg-do run { target size32plus } } */
/* { dg-options "-O3" } */ /* { dg-options "-O3" } */
unsigned char a, b, c, d[200][200]; unsigned char a, b, c, d[200][200];
......
/* { dg-do compile } */ /* { dg-do compile { target size32plus } } */
/* { dg-options "-O2 -fdump-tree-dom2-details -w" } */ /* { dg-options "-O2 -fdump-tree-dom2-details -w" } */
union tree_node; union tree_node;
......
...@@ -13,4 +13,5 @@ int foo (int v[], int a) ...@@ -13,4 +13,5 @@ int foo (int v[], int a)
return r; return r;
} }
/* { dg-final { scan-tree-dump "MEM\\\[.* \\+ 252B\\\]" "optimized"} } */ /* { dg-final { scan-tree-dump "MEM\\\[.* \\+ 252B\\\]" "optimized" { target int32plus } } } */
/* { dg-final { scan-tree-dump "MEM\\\[.* \\+ 126B\\\]" "optimized" { target int16 } } } */
...@@ -14,4 +14,5 @@ int foo (int v1[], int v2[]) ...@@ -14,4 +14,5 @@ int foo (int v1[], int v2[])
return r; return r;
} }
/* { dg-final { scan-tree-dump "MEM\\\[.* \\+ 252B\\\]" "optimized"} } */ /* { dg-final { scan-tree-dump "MEM\\\[.* \\+ 252B\\\]" "optimized" { target int32plus } } } */
/* { dg-final { scan-tree-dump "MEM\\\[.* \\+ 126B\\\]" "optimized" { target int16 } } } */
/* PR79725 */ /* PR79725 */
/* { dg-do compile } */ /* { dg-do compile { target size32plus } } */
/* { dg-options "-O2 -fdump-tree-optimized" } */ /* { dg-options "-O2 -fdump-tree-optimized" } */
_Complex double f(_Complex double x[]) _Complex double f(_Complex double x[])
......
/* { dg-do link } */ /* { dg-do link { target int32plus } } */
/* { dg-options "-O2 -fdump-tree-fre1 -fdump-tree-evrp" } */ /* { dg-options "-O2 -fdump-tree-fre1 -fdump-tree-evrp" } */
extern void link_error (); extern void link_error ();
......
...@@ -12,7 +12,7 @@ char16_t c2 = u'\U00064321'; /* { dg-warning "constant too long" } */ ...@@ -12,7 +12,7 @@ char16_t c2 = u'\U00064321'; /* { dg-warning "constant too long" } */
char16_t c3 = 'a'; char16_t c3 = 'a';
char16_t c4 = U'a'; char16_t c4 = U'a';
char16_t c5 = U'\u2029'; char16_t c5 = U'\u2029';
char16_t c6 = U'\U00064321'; /* { dg-warning "conversion from .(long )?unsigned int. to 'char16_t' {aka 'short unsigned int'} changes value from .410401. to .17185." } */ char16_t c6 = U'\U00064321'; /* { dg-warning "conversion from .(long )?unsigned int. to 'char16_t' {aka '(short )?unsigned int'} changes value from .410401. to .17185." } */
char16_t c7 = L'a'; char16_t c7 = L'a';
char16_t c8 = L'\u2029'; char16_t c8 = L'\u2029';
char16_t c9 = L'\U00064321'; /* { dg-warning "conversion" "" { target { 4byte_wchar_t } } } */ char16_t c9 = L'\U00064321'; /* { dg-warning "conversion" "" { target { 4byte_wchar_t } } } */
......
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