1 /* Test vector fixed-point instructions */
2 /* { dg-do compile { target { fixed_point } } } */
3 /* { dg-options "-mdspr2" } */
4 /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
5 /* { dg-final { scan-assembler-times "\taddq_s.ph\t" 2 } } */
6 /* { dg-final { scan-assembler-times "\tsubq_s.ph\t" 2 } } */
7 /* { dg-final { scan-assembler-times "\taddu_s.qb\t" 1 } } */
8 /* { dg-final { scan-assembler-times "\taddu_s.ph\t" 2 } } */
9 /* { dg-final { scan-assembler-times "\tsubu_s.qb\t" 1 } } */
10 /* { dg-final { scan-assembler-times "\tsubu_s.ph\t" 2 } } */
11 /* { dg-final { scan-assembler-times "\tmulq_rs.ph\t" 1 } } */
13 typedef _Sat
unsigned short _Fract sat_v4uqq
__attribute__ ((vector_size(4)));
14 typedef _Sat
unsigned _Fract sat_v2uhq
__attribute__ ((vector_size(4)));
15 typedef _Sat
unsigned short _Accum sat_v2uha
__attribute__ ((vector_size(4)));
16 typedef _Sat _Fract sat_v2hq
__attribute__ ((vector_size(4)));
17 typedef _Sat
short _Accum sat_v2ha
__attribute__ ((vector_size(4)));
19 typedef unsigned short _Fract v4uqq
__attribute__ ((vector_size(4)));
20 typedef unsigned _Fract v2uhq
__attribute__ ((vector_size(4)));
21 typedef unsigned short _Accum v2uha
__attribute__ ((vector_size(4)));
22 typedef _Fract v2hq
__attribute__ ((vector_size(4)));
23 typedef short _Accum v2ha
__attribute__ ((vector_size(4)));
25 NOMIPS16 sat_v2hq
test1 (sat_v2hq a
, sat_v2hq b
)
30 NOMIPS16 sat_v2ha
test2 (sat_v2ha a
, sat_v2ha b
)
35 NOMIPS16 sat_v2hq
test3 (sat_v2hq a
, sat_v2hq b
)
40 NOMIPS16 sat_v2ha
test4 (sat_v2ha a
, sat_v2ha b
)
45 NOMIPS16 sat_v4uqq
test5 (sat_v4uqq a
, sat_v4uqq b
)
50 NOMIPS16 sat_v2uhq
test6 (sat_v2uhq a
, sat_v2uhq b
)
55 NOMIPS16 sat_v2uha
test7 (sat_v2uha a
, sat_v2uha b
)
60 NOMIPS16 sat_v4uqq
test8 (sat_v4uqq a
, sat_v4uqq b
)
65 NOMIPS16 sat_v2uhq
test9 (sat_v2uhq a
, sat_v2uhq b
)
70 NOMIPS16 sat_v2uha
test10 (sat_v2uha a
, sat_v2uha b
)
75 NOMIPS16 sat_v2hq
test11 (sat_v2hq a
, sat_v2hq b
)
80 NOMIPS16 v2hq
test12 (v2hq a
, v2hq b
)
85 NOMIPS16 v2hq
test13 (v2hq a
, v2hq b
)
90 NOMIPS16 v2hq
test14 (v2hq a
, v2hq b
)
95 NOMIPS16 v2ha
test15 (v2ha a
, v2ha b
)
100 NOMIPS16 v2ha
test16 (v2ha a
, v2ha b
)
105 NOMIPS16 v4uqq
test17 (v4uqq a
, v4uqq b
)
110 NOMIPS16 v4uqq
test18 (v4uqq a
, v4uqq b
)
115 NOMIPS16 v2uhq
test19 (v2uhq a
, v2uhq b
)
120 NOMIPS16 v2uhq
test20 (v2uhq a
, v2uhq b
)
125 NOMIPS16 v2uha
test21 (v2uha a
, v2uha b
)
130 NOMIPS16 v2uha
test22 (v2uha a
, v2uha b
)