aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/PowerPC/vec_constants.ll
blob: 9d51e3c6821031df8417f5a701d023500ac13104 (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
43
44
45
46
47
48
; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 -mcpu=g5 &&
; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 -mcpu=g5 | not grep CPI


; Tests spltw(0x80000000) and spltw(0x7FFFFFFF).
void %test1(<4 x int>* %P1, <4 x int>* %P2, <4 x float>* %P3) {
        %tmp = load <4 x int>* %P1              
        %tmp4 = and <4 x int> %tmp, < int -2147483648, int -2147483648, int -2147483648, int -2147483648 >                
        store <4 x int> %tmp4, <4 x int>* %P1
        %tmp7 = load <4 x int>* %P2             
        %tmp9 = and <4 x int> %tmp7, < int 2147483647, int 2147483647, int 2147483647, int 2147483647 >           
        store <4 x int> %tmp9, <4 x int>* %P2
        %tmp = load <4 x float>* %P3            
        %tmp11 = cast <4 x float> %tmp to <4 x int>             
        %tmp12 = and <4 x int> %tmp11, < int 2147483647, int 2147483647, int 2147483647, int 2147483647 >
        %tmp13 = cast <4 x int> %tmp12 to <4 x float>
        store <4 x float> %tmp13, <4 x float>* %P3
        ret void
}

<4 x int> %test_30() {
        ret <4 x int> <int 30, int 30, int 30, int 30>
}

<4 x int> %test_29() {
        ret <4 x int> <int 29, int 29, int 29, int 29>
}

<8 x short> %test_n30() {
        ret <8 x short> <short -30, short -30, short -30, short -30,
                         short -30, short -30, short -30, short -30>
}

<16 x sbyte> %test_n104() {
        ret <16 x sbyte> <sbyte -104, sbyte -104, sbyte -104, sbyte -104,
                          sbyte -104, sbyte -104, sbyte -104, sbyte -104,
                          sbyte -104, sbyte -104, sbyte -104, sbyte -104,
                          sbyte -104, sbyte -104, sbyte -104, sbyte -104>
}

<4 x int> %test_vsldoi() {
        ret <4 x int> <int 512, int 512, int 512, int 512>
}

<4 x int> %test_rol() {
        ret <4 x int> <int -11534337, int -11534337, int -11534337, int -11534337>
}