1 // REQUIRES: hexagon-registered-target
2 // RUN: %clang_cc1 %s -triple hexagon -verify -target-cpu hexagonv60 -DTEST_V60 -S -o -
3 // RUN: %clang_cc1 %s -triple hexagon -verify -target-cpu hexagonv60 -DTEST_V62 -S -o -
4 // RUN: %clang_cc1 %s -triple hexagon -verify -target-cpu hexagonv60 -DTEST_V65 -S -o -
5 
6 #ifdef TEST_V60
builtin_needs_v60(unsigned Rs)7 unsigned builtin_needs_v60(unsigned Rs) {
8   // expected-no-diagnostics
9   return __builtin_HEXAGON_S6_rol_i_r(Rs, 3);
10 }
11 #endif
12 
13 #ifdef TEST_V62
builtin_needs_v62(unsigned Rs)14 unsigned long long builtin_needs_v62(unsigned Rs) {
15   // expected-error-re@+1 {{'__builtin_HEXAGON_S6_vsplatrbp' needs target feature v62|{{.*}}}}
16   return __builtin_HEXAGON_S6_vsplatrbp(Rs);
17 }
18 #endif
19 
20 #ifdef TEST_V65
builtin_needs_v65(unsigned long long Rss,unsigned long long Rtt)21 unsigned builtin_needs_v65(unsigned long long Rss, unsigned long long Rtt) {
22   // expected-error-re@+1 {{'__builtin_HEXAGON_A6_vcmpbeq_notany' needs target feature v65|{{.*}}}}
23   return __builtin_HEXAGON_A6_vcmpbeq_notany(Rss, Rtt);
24 }
25 #endif
26