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 double vcdgb(vector signed long long a)7vcdgb (vector signed long long a) 8 { 9 return vec_double (a); 10 } 11 12 /* { dg-final { scan-assembler-times "vcdgb.*\n\tvcdgb.*floatv2div2df2" 1 } } */ 13 14 vector double vcdlgb(vector unsigned long long a)15vcdlgb (vector unsigned long long a) 16 { 17 return vec_double (a); 18 } 19 20 /* { dg-final { scan-assembler-times "vcdlgb.*\n\tvcdlgb.*floatunsv2div2df2" 1 } } */ 21 22 vector double vcdgb_mem(vector signed long long * a)23vcdgb_mem (vector signed long long *a) 24 { 25 return vec_double (*a); 26 } 27 28 vector double vcdlgb_mem(vector unsigned long long * a)29vcdlgb_mem (vector unsigned long long *a) 30 { 31 return vec_double (*a); 32 } 33 34 vector double vcdgb_imm()35vcdgb_imm () 36 { 37 return vec_double ((vector signed long long) { 1, -2 }); 38 } 39 40 vector double vcdlgb_imm()41vcdlgb_imm () 42 { 43 return vec_double ((vector unsigned long long){ 1, 2 }); 44 } 45 46 /* { dg-final { scan-assembler-times "vcdgb\t" 3 } } */ 47 /* { dg-final { scan-assembler-times "vcdlgb\t" 3 } } */ 48