blob: c3fb1151254241bd65bbccd7ca5a33c7d4ed4c99 [file] [log] [blame]
Vincent Lejeunea4d8d2e2013-07-09 15:03:19 +00001; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck --check-prefix=EG-CHECK %s
2
3;EG-CHECK: EXPORT T{{[0-9]+}}.XYXX
4;EG-CHECK: EXPORT T{{[0-9]+}}.ZXXX
5;EG-CHECK: EXPORT T{{[0-9]+}}.XXWX
6;EG-CHECK: EXPORT T{{[0-9]+}}.XXXW
7
8define void @main() #0 {
9main_body:
10 %0 = call float @llvm.R600.load.input(i32 4)
11 %1 = call float @llvm.R600.load.input(i32 5)
12 %2 = call float @llvm.R600.load.input(i32 6)
13 %3 = call float @llvm.R600.load.input(i32 7)
14 %4 = load <4 x float> addrspace(8)* null
15 %5 = extractelement <4 x float> %4, i32 1
16 %6 = load <4 x float> addrspace(8)* null
17 %7 = extractelement <4 x float> %6, i32 2
18 %8 = load <4 x float> addrspace(8)* null
19 %9 = extractelement <4 x float> %8, i32 0
20 %10 = fmul float 0.000000e+00, %9
21 %11 = load <4 x float> addrspace(8)* null
22 %12 = extractelement <4 x float> %11, i32 0
23 %13 = fmul float %5, %12
24 %14 = load <4 x float> addrspace(8)* null
25 %15 = extractelement <4 x float> %14, i32 0
26 %16 = fmul float 0.000000e+00, %15
27 %17 = load <4 x float> addrspace(8)* null
28 %18 = extractelement <4 x float> %17, i32 0
29 %19 = fmul float 0.000000e+00, %18
30 %20 = load <4 x float> addrspace(8)* null
31 %21 = extractelement <4 x float> %20, i32 0
32 %22 = fmul float %7, %21
33 %23 = load <4 x float> addrspace(8)* null
34 %24 = extractelement <4 x float> %23, i32 0
35 %25 = fmul float 0.000000e+00, %24
36 %26 = load <4 x float> addrspace(8)* null
37 %27 = extractelement <4 x float> %26, i32 0
38 %28 = fmul float 0.000000e+00, %27
39 %29 = load <4 x float> addrspace(8)* null
40 %30 = extractelement <4 x float> %29, i32 0
41 %31 = fmul float 0.000000e+00, %30
42 %32 = load <4 x float> addrspace(8)* null
43 %33 = extractelement <4 x float> %32, i32 0
44 %34 = fmul float 0.000000e+00, %33
45 %35 = load <4 x float> addrspace(8)* null
46 %36 = extractelement <4 x float> %35, i32 0
47 %37 = fmul float 0.000000e+00, %36
48 %38 = load <4 x float> addrspace(8)* null
49 %39 = extractelement <4 x float> %38, i32 0
50 %40 = fmul float 1.000000e+00, %39
51 %41 = load <4 x float> addrspace(8)* null
52 %42 = extractelement <4 x float> %41, i32 0
53 %43 = fmul float 0.000000e+00, %42
54 %44 = load <4 x float> addrspace(8)* null
55 %45 = extractelement <4 x float> %44, i32 0
56 %46 = fmul float 0.000000e+00, %45
57 %47 = load <4 x float> addrspace(8)* null
58 %48 = extractelement <4 x float> %47, i32 0
59 %49 = fmul float 0.000000e+00, %48
60 %50 = load <4 x float> addrspace(8)* null
61 %51 = extractelement <4 x float> %50, i32 0
62 %52 = fmul float 0.000000e+00, %51
63 %53 = load <4 x float> addrspace(8)* null
64 %54 = extractelement <4 x float> %53, i32 0
65 %55 = fmul float 1.000000e+00, %54
66 %56 = insertelement <4 x float> undef, float %0, i32 0
67 %57 = insertelement <4 x float> %56, float %1, i32 1
68 %58 = insertelement <4 x float> %57, float %2, i32 2
69 %59 = insertelement <4 x float> %58, float %3, i32 3
70 call void @llvm.R600.store.swizzle(<4 x float> %59, i32 60, i32 1)
71 %60 = insertelement <4 x float> undef, float %10, i32 0
72 %61 = insertelement <4 x float> %60, float %13, i32 1
73 %62 = insertelement <4 x float> %61, float %16, i32 2
74 %63 = insertelement <4 x float> %62, float %19, i32 3
75 call void @llvm.R600.store.swizzle(<4 x float> %63, i32 0, i32 2)
76 %64 = insertelement <4 x float> undef, float %22, i32 0
77 %65 = insertelement <4 x float> %64, float %25, i32 1
78 %66 = insertelement <4 x float> %65, float %28, i32 2
79 %67 = insertelement <4 x float> %66, float %31, i32 3
80 call void @llvm.R600.store.swizzle(<4 x float> %67, i32 1, i32 2)
81 %68 = insertelement <4 x float> undef, float %34, i32 0
82 %69 = insertelement <4 x float> %68, float %37, i32 1
83 %70 = insertelement <4 x float> %69, float %40, i32 2
84 %71 = insertelement <4 x float> %70, float %43, i32 3
85 call void @llvm.R600.store.swizzle(<4 x float> %71, i32 2, i32 2)
86 %72 = insertelement <4 x float> undef, float %46, i32 0
87 %73 = insertelement <4 x float> %72, float %49, i32 1
88 %74 = insertelement <4 x float> %73, float %52, i32 2
89 %75 = insertelement <4 x float> %74, float %55, i32 3
90 call void @llvm.R600.store.swizzle(<4 x float> %75, i32 3, i32 2)
91 ret void
92}
93
94; Function Attrs: readnone
95declare float @llvm.R600.load.input(i32) #1
96
97declare void @llvm.R600.store.swizzle(<4 x float>, i32, i32)
98
99attributes #0 = { "ShaderType"="1" }
100attributes #1 = { readnone }