* gcc.target/i386/pr70021.c: Add -mtune=skylake.
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr49095.c
blob73758f8c523479d512b1cb8ba8c78b957c0053fc
1 /* PR rtl-optimization/49095 */
2 /* { dg-do compile } */
3 /* { dg-options "-Os -fno-shrink-wrap" } */
4 /* { dg-additional-options "-mregparm=2" { target ia32 } } */
6 void foo (void *);
8 int *
9 f1 (int *x)
11 if (!--*x)
12 foo (x);
13 return x;
16 int
17 g1 (int x)
19 if (!--x)
20 foo ((void *) 0);
21 return x;
24 #define F(T, OP, OPN) \
25 T * \
26 f##T##OPN (T *x, T y) \
27 { \
28 *x OP y; \
29 if (!*x) \
30 foo (x); \
31 return x; \
32 } \
34 T \
35 g##T##OPN (T x, T y) \
36 { \
37 x OP y; \
38 if (!x) \
39 foo ((void *) 0); \
40 return x; \
41 } \
43 T * \
44 h##T##OPN (T *x) \
45 { \
46 *x OP 24; \
47 if (!*x) \
48 foo (x); \
49 return x; \
50 } \
52 T \
53 i##T##OPN (T x, T y) \
54 { \
55 x OP 24; \
56 if (!x) \
57 foo ((void *) 0); \
58 return x; \
61 #define G(T) \
62 F (T, +=, plus) \
63 F (T, -=, minus) \
64 F (T, &=, and) \
65 F (T, |=, or) \
66 F (T, ^=, xor)
68 G (char)
69 G (short)
70 G (int)
71 G (long)
73 /* { dg-final { scan-assembler-not "test\[lq\]" } } */