1762dee51SKrzysztof Parzyszek // REQUIRES: hexagon-registered-target 2*6f3effbbSKrzysztof Parzyszek // RUN: %clang_cc1 %s -triple hexagon -verify -target-cpu hexagonv62 -S -o - -DTEST_V60 3*6f3effbbSKrzysztof Parzyszek // RUN: %clang_cc1 %s -triple hexagon -verify -target-cpu hexagonv62 -S -o - -DTEST_V62 4*6f3effbbSKrzysztof Parzyszek // RUN: %clang_cc1 %s -triple hexagon -verify -target-cpu hexagonv62 -S -o - -DTEST_V65 5762dee51SKrzysztof Parzyszek 6*6f3effbbSKrzysztof Parzyszek #ifdef TEST_V60 builtin_needs_v60(unsigned Rs)7762dee51SKrzysztof Parzyszekunsigned builtin_needs_v60(unsigned Rs) { 8*6f3effbbSKrzysztof Parzyszek // expected-no-diagnostics 9762dee51SKrzysztof Parzyszek return __builtin_HEXAGON_S6_rol_i_r(Rs, 3); 10762dee51SKrzysztof Parzyszek } 11*6f3effbbSKrzysztof Parzyszek #endif 12762dee51SKrzysztof Parzyszek 13*6f3effbbSKrzysztof Parzyszek #ifdef TEST_V62 builtin_needs_v62(unsigned Rs)14762dee51SKrzysztof Parzyszekunsigned long long builtin_needs_v62(unsigned Rs) { 15*6f3effbbSKrzysztof Parzyszek // expected-no-diagnostics 16762dee51SKrzysztof Parzyszek return __builtin_HEXAGON_S6_vsplatrbp(Rs); 17762dee51SKrzysztof Parzyszek } 18*6f3effbbSKrzysztof Parzyszek #endif 19762dee51SKrzysztof Parzyszek 20*6f3effbbSKrzysztof Parzyszek #ifdef TEST_V65 builtin_needs_v65(unsigned long long Rss,unsigned long long Rtt)21762dee51SKrzysztof Parzyszekunsigned builtin_needs_v65(unsigned long long Rss, unsigned long long Rtt) { 22*6f3effbbSKrzysztof Parzyszek // expected-error-re@+1 {{'__builtin_HEXAGON_A6_vcmpbeq_notany' needs target feature v65|{{.*}}}} 23762dee51SKrzysztof Parzyszek return __builtin_HEXAGON_A6_vcmpbeq_notany(Rss, Rtt); 24762dee51SKrzysztof Parzyszek } 25*6f3effbbSKrzysztof Parzyszek #endif 26