1 /* { dg-do compile } */ 2 /* { dg-options "-O3 -mzarch -march=arch13 -mzvector -fno-asynchronous-unwind-tables -dp" } */ 3 4 #include <vecintrin.h> 5 6 vector unsigned int vclfeb(vector float a)7vclfeb (vector float a) 8 { 9 return vec_unsigned (a); 10 } 11 12 /* { dg-final { scan-assembler-times "vclfeb.*\n\tvclfeb.*fixuns_truncv4sfv4si2" 1 } } */ 13 14 vector unsigned long long vclgdb(vector double a)15vclgdb (vector double a) 16 { 17 return vec_unsigned (a); 18 } 19 20 /* { dg-final { scan-assembler-times "vclgdb.*\n\tvclgdb.*fixuns_truncv2dfv2di2" 1 } } */ 21 22 vector unsigned int vclfeb_mem(vector float * a)23vclfeb_mem (vector float *a) 24 { 25 return vec_unsigned (*a); 26 } 27 28 vector unsigned long long vclgdb_mem(vector double * a)29vclgdb_mem (vector double *a) 30 { 31 return vec_unsigned (*a); 32 } 33 34 vector unsigned int vclfeb_imm()35vclfeb_imm () 36 { 37 return vec_unsigned ((vector float) { 1.0f, 2.0f }); 38 } 39 40 vector unsigned long long vclgdb_imm()41vclgdb_imm () 42 { 43 return vec_unsigned ((vector double){ 1.0, 2.0 }); 44 } 45 46 /* { dg-final { scan-assembler-times "vclfeb\t" 3 } } */ 47 /* { dg-final { scan-assembler-times "vclgdb\t" 3 } } */ 48