blob: b32c23b4280db57c8c9ddc771103bed7247b0d43 [file] [log] [blame]
Kalle Raiskilac9fda992010-08-02 10:25:47 +00001;RUN: llc --march=cellspu %s -o - | FileCheck %s
2%vec = type <2 x float>
3
4define %vec @test_ret(%vec %param)
5{
6;CHECK: bi $lr
7 ret %vec %param
8}
9
10define %vec @test_add(%vec %param)
11{
12;CHECK: fa $3, $3, $3
13 %1 = fadd %vec %param, %param
14;CHECK: bi $lr
15 ret %vec %1
16}
17
18define %vec @test_sub(%vec %param)
19{
20;CHECK: fs $3, $3, $3
21 %1 = fsub %vec %param, %param
22
23;CHECK: bi $lr
24 ret %vec %1
25}
26
27define %vec @test_mul(%vec %param)
28{
29;CHECK: fm $3, $3, $3
30 %1 = fmul %vec %param, %param
31
32;CHECK: bi $lr
33 ret %vec %1
34}
35
Kalle Raiskilae1c91592010-08-02 11:22:10 +000036define %vec @test_splat(float %param ) {
37;CHECK: lqa
38;CHECK: shufb
39 %sv = insertelement <1 x float> undef, float %param, i32 0
40 %rv = shufflevector <1 x float> %sv, <1 x float> undef, <2 x i32> zeroinitializer
41;CHECK: bi $lr
42 ret %vec %rv
43}
44
Kalle Raiskilabc2697c2010-08-04 13:59:48 +000045define void @test_store(%vec %val, %vec* %ptr){
46
47;CHECK: stqd
48 store %vec undef, %vec* null
49
50;CHECK: stqd $3, 0($4)
51;CHECK: bi $lr
52 store %vec %val, %vec* %ptr
53 ret void
54}
55
56define %vec @test_insert(){
57;CHECK: cwd
58;CHECK: shufb $3
59 %rv = insertelement %vec undef, float 0.0e+00, i32 undef
60;CHECK: bi $lr
61 ret %vec %rv
62}
Kalle Raiskilae1c91592010-08-02 11:22:10 +000063