aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/powerpc/fold-vec-st-longlong.c
blob: 92a86a347b49e6f5229704d3473409ab104ede5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* Verify that overloaded built-ins for vec_st* with long long
   inputs produce the right code.  */

/* { dg-do compile { target lp64 } } */
/* { dg-options "-mvsx -O2" } */
/* { dg-additional-options "-mdejagnu-cpu=power8" { target { ! has_arch_pwr8 } } } */
/* { dg-require-effective-target powerpc_vsx } */

#include <altivec.h>

void
testst_1 (vector signed long long vsll1, int i1, vector signed long long * vsllp)
{
	return vec_st(vsll1, i1, vsllp);
}
void
testst_3 (vector unsigned long long vull1, int i1, vector unsigned long long * vsllp)
{
	return vec_st(vull1, i1, vsllp);
}
void
testst_5 (vector bool long long vbll1, int i1, vector bool long long * vbllp)
{
	return vec_st(vbll1, i1, vbllp);
}
void
testst_cst1 (vector signed long long vsll1, int i1, vector signed long long * vsllp)
{
	return vec_st(vsll1, 12, vsllp);
}
void
testst_cst3 (vector unsigned long long vull1, int i1, vector unsigned long long * vsllp)
{
	return vec_st(vull1, 24, vsllp);
}
void
testst_cst5 (vector bool long long vbll1, int i1, vector bool long long * vbllp)
{
	return vec_st(vbll1, 36, vbllp);
}

/* { dg-final { scan-assembler-times {\mstvx\M}  6 } } */