]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/R600/llvm.SI.image.ll
Vendor import of llvm RELEASE_350/final tag r216957 (effectively, 3.5.0 release):
[FreeBSD/FreeBSD.git] / test / CodeGen / R600 / llvm.SI.image.ll
1 ;RUN: llc < %s -march=r600 -mcpu=verde -verify-machineinstrs | FileCheck %s
2
3 ;CHECK-LABEL: @image_load
4 ;CHECK: IMAGE_LOAD {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
5 define void @image_load() #0 {
6 main_body:
7   %r = call <4 x float> @llvm.SI.image.load.v4i32(<4 x i32> undef, <8 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
8   %r0 = extractelement <4 x float> %r, i32 0
9   %r1 = extractelement <4 x float> %r, i32 1
10   %r2 = extractelement <4 x float> %r, i32 2
11   %r3 = extractelement <4 x float> %r, i32 3
12   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
13   ret void
14 }
15
16 ;CHECK-LABEL: @image_load_mip
17 ;CHECK: IMAGE_LOAD_MIP {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}
18 define void @image_load_mip() #0 {
19 main_body:
20   %r = call <4 x float> @llvm.SI.image.load.mip.v4i32(<4 x i32> undef, <8 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
21   %r0 = extractelement <4 x float> %r, i32 0
22   %r1 = extractelement <4 x float> %r, i32 1
23   %r2 = extractelement <4 x float> %r, i32 2
24   %r3 = extractelement <4 x float> %r, i32 3
25   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
26   ret void
27 }
28
29 ;CHECK-LABEL: @getresinfo
30 ;CHECK: IMAGE_GET_RESINFO {{v\[[0-9]+:[0-9]+\]}}, 15, 0, 0, 0, 0, 0, 0, 0, {{v[0-9]+}}, {{s\[[0-9]+:[0-9]+\]}}
31 define void @getresinfo() #0 {
32 main_body:
33   %r = call <4 x float> @llvm.SI.getresinfo.i32(i32 undef, <8 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
34   %r0 = extractelement <4 x float> %r, i32 0
35   %r1 = extractelement <4 x float> %r, i32 1
36   %r2 = extractelement <4 x float> %r, i32 2
37   %r3 = extractelement <4 x float> %r, i32 3
38   call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3)
39   ret void
40 }
41
42 declare <4 x float> @llvm.SI.image.load.v4i32(<4 x i32>, <8 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
43 declare <4 x float> @llvm.SI.image.load.mip.v4i32(<4 x i32>, <8 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
44 declare <4 x float> @llvm.SI.getresinfo.i32(i32, <8 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #1
45
46 declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float)
47
48 attributes #0 = { "ShaderType"="0" }
49 attributes #1 = { nounwind readnone }