1 /* { dg-do compile { target { powerpc*-*-* } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } } */
3 /* { dg-require-effective-target powerpc_p8vector_ok } */
4 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
5 /* { dg-options "-O2 -mcpu=power8 -mno-crypto" } */
7 void use_builtins_d (__vector
unsigned long long *p
, __vector
unsigned long long *q
, __vector
unsigned long long *r
, __vector
unsigned long long *s
)
9 p
[0] = __builtin_crypto_vcipher (q
[0], r
[0]); /* { dg-error "builtin function '__builtin_crypto_vcipher' is not supported with the current options" } */
10 p
[1] = __builtin_crypto_vcipherlast (q
[1], r
[1]); /* { dg-error "builtin function '__builtin_crypto_vcipherlast' is not supported with the current options" } */
11 p
[2] = __builtin_crypto_vncipher (q
[2], r
[2]); /* { dg-error "builtin function '__builtin_crypto_vncipher' is not supported with the current options" } */
12 p
[3] = __builtin_crypto_vncipherlast (q
[3], r
[3]); /* { dg-error "builtin function '__builtin_crypto_vncipherlast' is not supported with the current options" } */
13 p
[4] = __builtin_crypto_vpermxor (q
[4], r
[4], s
[4]);
14 p
[5] = __builtin_crypto_vpmsumd (q
[5], r
[5]);
15 p
[6] = __builtin_crypto_vshasigmad (q
[6], 1, 15); /* { dg-error "builtin function '__builtin_crypto_vshasigmad' is not supported with the current options" } */
16 p
[7] = __builtin_crypto_vsbox (q
[7]); /* { dg-error "builtin function '__builtin_crypto_vsbox' is not supported with the current options" } */
19 void use_builtins_w (__vector
unsigned int *p
, __vector
unsigned int *q
, __vector
unsigned int *r
, __vector
unsigned int *s
)
21 p
[0] = __builtin_crypto_vpermxor (q
[0], r
[0], s
[0]);
22 p
[1] = __builtin_crypto_vpmsumw (q
[1], r
[1]);
23 p
[2] = __builtin_crypto_vshasigmaw (q
[2], 1, 15); /* { dg-error "builtin function '__builtin_crypto_vshasigmaw' is not supported with the current options" } */
26 void use_builtins_h (__vector
unsigned short *p
, __vector
unsigned short *q
, __vector
unsigned short *r
, __vector
unsigned short *s
)
28 p
[0] = __builtin_crypto_vpermxor (q
[0], r
[0], s
[0]);
29 p
[1] = __builtin_crypto_vpmsumh (q
[1], r
[1]);
32 void use_builtins_b (__vector
unsigned char *p
, __vector
unsigned char *q
, __vector
unsigned char *r
, __vector
unsigned char *s
)
34 p
[0] = __builtin_crypto_vpermxor (q
[0], r
[0], s
[0]);
35 p
[1] = __builtin_crypto_vpmsumb (q
[1], r
[1]);