1 /* Check that there are no redundant zero extensions around logical right
3 /* { dg-do compile } */
4 /* { dg-options "-O1" } */
5 /* { dg-final { scan-assembler-times "extu" 20 } } */
7 /* { dg-final { scan-assembler-times "shll" 2 { target { "! sh2a" && has_dyn_shift } } } } */
8 /* { dg-final { scan-assembler-times "shll" 3 { target { "! sh2a" && "! has_dyn_shift" } } } } */
9 /* { dg-final { scan-assembler-times "movt" 2 { target { ! sh2a } } } } */
11 /* { dg-final { scan-assembler-times "bld" 1 { target { sh2a } } } } */
12 /* { dg-final { scan-assembler-times "movt" 1 { target { sh2a } } } } */
13 /* { dg-final { scan-assembler-times "movrt" 1 { target { sh2a } } } } */
14 /* { dg-final { scan-assembler-times "cmp/pz" 1 { target { sh2a } } } } */
16 /* { dg-final { scan-assembler-times "shld" 9 { target { has_dyn_shift } } } } */
19 test_0 (unsigned char* x
, unsigned int* y
)
25 test_1 (unsigned char* x
, unsigned int* y
)
31 test_2 (unsigned char* x
, unsigned int* y
)
37 test_3 (unsigned char* x
, unsigned int* y
)
43 test_4 (unsigned char* x
, unsigned int* y
)
49 test_5 (unsigned char* x
, unsigned int* y
)
55 test_6 (unsigned char* x
, unsigned int* y
)
57 /* non-SH2A: shll, movt
64 test_100 (unsigned short* x
, unsigned int* y
)
70 test_101 (unsigned short* x
, unsigned int* y
)
76 test_102 (unsigned short* x
, unsigned int* y
)
82 test_103 (unsigned short* x
, unsigned int* y
)
88 test_104 (unsigned short* x
, unsigned int* y
)
94 test_105 (unsigned short* x
, unsigned int* y
)
100 test_106 (unsigned short* x
, unsigned int* y
)
106 test_107 (unsigned short* x
, unsigned int* y
)
112 test_108 (unsigned short* x
, unsigned int* y
)
118 test_109 (unsigned short* x
, unsigned int* y
)
124 test_110 (unsigned short* x
, unsigned int* y
)
130 test_111 (unsigned short* x
, unsigned int* y
)
136 test_112 (unsigned short* x
, unsigned int* y
)
142 test_113 (unsigned short* x
, unsigned int* y
)
148 test_114 (unsigned short* x
, unsigned int* y
)
150 /* non-SH2A: shll, movt
151 SH2A: cmp/pz, movrt */