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 signed int vcfeb(vector float a)7vcfeb (vector float a) 8 { 9 return vec_signed (a); 10 } 11 12 /* { dg-final { scan-assembler-times "vcfeb.*\n\tvcfeb.*fix_truncv4sfv4si2" 1 } } */ 13 14 vector signed long long vcgdb(vector double a)15vcgdb (vector double a) 16 { 17 return vec_signed (a); 18 } 19 20 /* { dg-final { scan-assembler-times "vcgdb.*\n\tvcgdb.*fix_truncv2dfv2di2" 1 } } */ 21 22 vector signed int vcfeb_mem(vector float * a)23vcfeb_mem (vector float *a) 24 { 25 return vec_signed (*a); 26 } 27 28 vector signed long long vcgdb_mem(vector double * a)29vcgdb_mem (vector double *a) 30 { 31 return vec_signed (*a); 32 } 33 34 vector signed int vcfeb_imm()35vcfeb_imm () 36 { 37 return vec_signed ((vector float) { 1.0f, 2.0f }); 38 } 39 40 vector signed long long vcgdb_imm()41vcgdb_imm () 42 { 43 return vec_signed ((vector double){ 1.0, 2.0 }); 44 } 45 46 /* { dg-final { scan-assembler-times "vcfeb\t" 3 } } */ 47 /* { dg-final { scan-assembler-times "vcgdb\t" 3 } } */ 48