1 /* Check that no unnecessary zero extensions are done on values that are
2 results of arithmetic with T bit inputs. */
3 /* { dg-do compile } */
4 /* { dg-options "-O1" } */
5 /* { dg-final { scan-assembler-not "extu|exts" } } */
8 test00 (int a
, int b
, int c
, int d
)
16 test01 (int a
, int b
, int c
, int d
)
24 test02 (int a
, int b
, int c
, int d
)
32 test03 (int a
, int b
, int c
, int d
)
40 test04 (int a
, int b
, int c
, int d
)
48 test05 (int a
, int b
, int c
, int d
)
56 test06 (int a
, int b
, int c
, int d
)
64 test07 (int a
, int b
, int c
, int d
)
72 test08 (int a
, int b
, int c
, int d
)
80 test09 (int a
, int b
, int c
, int d
)
88 test10 (int a
, int b
, int c
, int d
)
96 test11 (int a
, int b
, int c
, int d
)
104 test12 (int a
, int b
, int c
, int d
)
112 test13 (int a
, int b
, int c
, int d
, int e
, int f
)
117 return x
== y
|| x
== z
;
121 test14 (int a
, int b
, int c
, int d
, int e
, int f
)
126 return x
== y
&& x
== z
;
130 test15 (int a
, int b
, int c
, int d
, int e
, int f
)
135 return x
== y
|| x
== z
;
139 test16 (int a
, int b
, int c
, int d
, int e
, int f
)
144 return x
== y
&& x
== z
;
148 test17 (int a
, int b
, int c
, int d
, int e
, int f
)
153 return x
== y
|| x
== z
;
157 test18 (int a
, int b
, int c
, int d
, int e
, int f
)
162 return x
== y
&& x
== z
;
166 test19 (int a
, int b
, int c
, int d
, int e
, int f
)
171 return x
== y
|| x
== z
;
175 test20 (int a
, int b
, int c
, int d
, int e
, int f
)
180 return x
== y
&& x
== z
;
184 test21 (int a
, int b
, int c
, int d
)
192 test22 (int a
, int b
, int c
, int d
)
200 test23 (int a
, int b
, int c
, int d
)
208 test24 (int a
, int b
, int c
, int d
)
216 test25 (int a
, int b
, int c
, int d
)
224 test26 (int a
, int b
, int c
, int d
)
232 test27 (int a
, int b
, int c
, int d
)
240 test28 (int a
, int b
, int c
, int d
)
248 test29 (int a
, int b
, int c
, int d
)
256 test30 (int a
, int b
)
258 return ((a
& 0x7F) == 1)
259 | ((a
& 0xFF00) == 0x0200)
260 | ((a
& 0xFF0000) == 0x030000);
264 test31 (int a
, int b
)
266 return ((a
& 0x7F) == 1)
267 | ((a
& 0xFF00) == 0x0200)
268 | ((a
& 0xFF0000) == 0x030000)
269 | ((a
& 0xFF000000) == 0x04000000);
273 test32 (int* a
, int b
, int c
, volatile char* d
)
280 test33 (int* a
, int b
, int c
, volatile char* d
)
287 test34 (int a
, int* b
)
289 return (b
[4] & b
[0] & a
) == a
;
293 test35 (int a
, int* b
)
295 return (b
[4] & b
[0] & a
) == a
;