1 /* Test vector fixed-point instructions */
2 /* { dg-do compile { target {fixed_point} } } */
3 /* { dg-mips-options "-march=mips32r2 -mdspr2 -O2" } */
4 /* { dg-final { scan-assembler-times "\taddq_s.ph\t" 2 } } */
5 /* { dg-final { scan-assembler-times "\tsubq_s.ph\t" 2 } } */
6 /* { dg-final { scan-assembler-times "\taddu_s.qb\t" 1 } } */
7 /* { dg-final { scan-assembler-times "\taddu_s.ph\t" 2 } } */
8 /* { dg-final { scan-assembler-times "\tsubu_s.qb\t" 1 } } */
9 /* { dg-final { scan-assembler-times "\tsubu_s.ph\t" 2 } } */
10 /* { dg-final { scan-assembler-times "\tmulq_rs.ph\t" 1 } } */
12 typedef _Sat
unsigned short _Fract sat_v4uqq
__attribute__ ((vector_size(4)));
13 typedef _Sat
unsigned _Fract sat_v2uhq
__attribute__ ((vector_size(4)));
14 typedef _Sat
unsigned short _Accum sat_v2uha
__attribute__ ((vector_size(4)));
15 typedef _Sat _Fract sat_v2hq
__attribute__ ((vector_size(4)));
16 typedef _Sat
short _Accum sat_v2ha
__attribute__ ((vector_size(4)));
18 typedef unsigned short _Fract v4uqq
__attribute__ ((vector_size(4)));
19 typedef unsigned _Fract v2uhq
__attribute__ ((vector_size(4)));
20 typedef unsigned short _Accum v2uha
__attribute__ ((vector_size(4)));
21 typedef _Fract v2hq
__attribute__ ((vector_size(4)));
22 typedef short _Accum v2ha
__attribute__ ((vector_size(4)));
24 NOMIPS16 sat_v2hq
test1 (sat_v2hq a
, sat_v2hq b
)
29 NOMIPS16 sat_v2ha
test2 (sat_v2ha a
, sat_v2ha b
)
34 NOMIPS16 sat_v2hq
test3 (sat_v2hq a
, sat_v2hq b
)
39 NOMIPS16 sat_v2ha
test4 (sat_v2ha a
, sat_v2ha b
)
44 NOMIPS16 sat_v4uqq
test5 (sat_v4uqq a
, sat_v4uqq b
)
49 NOMIPS16 sat_v2uhq
test6 (sat_v2uhq a
, sat_v2uhq b
)
54 NOMIPS16 sat_v2uha
test7 (sat_v2uha a
, sat_v2uha b
)
59 NOMIPS16 sat_v4uqq
test8 (sat_v4uqq a
, sat_v4uqq b
)
64 NOMIPS16 sat_v2uhq
test9 (sat_v2uhq a
, sat_v2uhq b
)
69 NOMIPS16 sat_v2uha
test10 (sat_v2uha a
, sat_v2uha b
)
74 NOMIPS16 sat_v2hq
test11 (sat_v2hq a
, sat_v2hq b
)
79 NOMIPS16 v2hq
test12 (v2hq a
, v2hq b
)
84 NOMIPS16 v2hq
test13 (v2hq a
, v2hq b
)
89 NOMIPS16 v2hq
test14 (v2hq a
, v2hq b
)
94 NOMIPS16 v2ha
test15 (v2ha a
, v2ha b
)
99 NOMIPS16 v2ha
test16 (v2ha a
, v2ha b
)
104 NOMIPS16 v4uqq
test17 (v4uqq a
, v4uqq b
)
109 NOMIPS16 v4uqq
test18 (v4uqq a
, v4uqq b
)
114 NOMIPS16 v2uhq
test19 (v2uhq a
, v2uhq b
)
119 NOMIPS16 v2uhq
test20 (v2uhq a
, v2uhq b
)
124 NOMIPS16 v2uha
test21 (v2uha a
, v2uha b
)
129 NOMIPS16 v2uha
test22 (v2uha a
, v2uha b
)