1/* { dg-do run } */ 2/* { dg-require-effective-target ultrasparc_hw } */ 3/* { dg-options "-mcpu=ultrasparc -mvis -O1" } */ 4 5typedef long long int64_t; 6typedef unsigned char vec8 __attribute__((vector_size(8))); 7 8extern void abort (); 9extern void exit (int); 10 11#define _(A) (unsigned char)A 12 13int64_t foo (vec8 a, vec8 b) { 14 int64_t d = 2; 15 d = __builtin_vis_pdist (a, b, d); 16 return d; 17} 18 19int64_t bar () { 20 int64_t d = 2; 21 vec8 a = { _(1), _(2), _(3), _(4), _(5), _(6), _(7), _(255) }; 22 vec8 b = { _(2), _(4), _(8), _(16), _(32), _(64), _(128), _(8) }; 23 d = __builtin_vis_pdist (a, b, d); 24 return d; 25} 26 27 28static vec8 a = { 1, 2, 3, 4, 5, 6, 7, 255 }; 29static vec8 b = { 2, 4, 8, 16, 32, 64, 128, 8 }; 30 31int main (int argc, char *argv[]) { 32 33 if (foo (a, b) != bar ()) 34 abort (); 35 36 exit (0); 37} 38