Home | History | Annotate | Download | only in R600
      1 ;RUN: llc < %s -march=r600 -mcpu=SI | FileCheck %s
      2 
      3 ;CHECK: IMAGE_SAMPLE
      4 ;CHECK-NEXT: S_WAITCNT 1904
      5 ;CHECK-NEXT: IMAGE_SAMPLE
      6 ;CHECK-NEXT: S_WAITCNT 1904
      7 ;CHECK-NEXT: IMAGE_SAMPLE
      8 ;CHECK-NEXT: S_WAITCNT 1904
      9 ;CHECK-NEXT: IMAGE_SAMPLE
     10 ;CHECK-NEXT: S_WAITCNT 1904
     11 ;CHECK-NEXT: IMAGE_SAMPLE
     12 ;CHECK-NEXT: S_WAITCNT 1904
     13 ;CHECK-NEXT: IMAGE_SAMPLE_C
     14 ;CHECK-NEXT: S_WAITCNT 1904
     15 ;CHECK-NEXT: IMAGE_SAMPLE_C
     16 ;CHECK-NEXT: S_WAITCNT 1904
     17 ;CHECK-NEXT: IMAGE_SAMPLE_C
     18 ;CHECK-NEXT: S_WAITCNT 1904
     19 ;CHECK-NEXT: IMAGE_SAMPLE
     20 ;CHECK-NEXT: S_WAITCNT 1904
     21 ;CHECK-NEXT: IMAGE_SAMPLE
     22 ;CHECK-NEXT: S_WAITCNT 1904
     23 ;CHECK-NEXT: IMAGE_SAMPLE_C
     24 ;CHECK-NEXT: S_WAITCNT 1904
     25 ;CHECK-NEXT: IMAGE_SAMPLE_C
     26 ;CHECK-NEXT: S_WAITCNT 1904
     27 ;CHECK-NEXT: IMAGE_SAMPLE_C
     28 ;CHECK-NEXT: S_WAITCNT 1904
     29 ;CHECK-NEXT: IMAGE_SAMPLE
     30 ;CHECK-NEXT: S_WAITCNT 1904
     31 ;CHECK-NEXT: IMAGE_SAMPLE
     32 ;CHECK-NEXT: S_WAITCNT 1904
     33 ;CHECK-NEXT: IMAGE_SAMPLE
     34 
     35 define void @test() {
     36    %res1 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     37       <8 x i32> undef, <4 x i32> undef, i32 1)
     38    %res2 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     39       <8 x i32> undef, <4 x i32> undef, i32 2)
     40    %res3 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     41       <8 x i32> undef, <4 x i32> undef, i32 3)
     42    %res4 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     43       <8 x i32> undef, <4 x i32> undef, i32 4)
     44    %res5 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     45       <8 x i32> undef, <4 x i32> undef, i32 5)
     46    %res6 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     47       <8 x i32> undef, <4 x i32> undef, i32 6)
     48    %res7 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     49       <8 x i32> undef, <4 x i32> undef, i32 7)
     50    %res8 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     51       <8 x i32> undef, <4 x i32> undef, i32 8)
     52    %res9 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     53       <8 x i32> undef, <4 x i32> undef, i32 9)
     54    %res10 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     55       <8 x i32> undef, <4 x i32> undef, i32 10)
     56    %res11 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     57       <8 x i32> undef, <4 x i32> undef, i32 11)
     58    %res12 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     59       <8 x i32> undef, <4 x i32> undef, i32 12)
     60    %res13 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     61       <8 x i32> undef, <4 x i32> undef, i32 13)
     62    %res14 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     63       <8 x i32> undef, <4 x i32> undef, i32 14)
     64    %res15 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     65       <8 x i32> undef, <4 x i32> undef, i32 15)
     66    %res16 = call <4 x float> @llvm.SI.sample.(i32 15, <4 x i32> undef,
     67       <8 x i32> undef, <4 x i32> undef, i32 16)
     68    ret void
     69 }
     70 
     71 declare <4 x float> @llvm.SI.sample.(i32, <4 x i32>, <8 x i32>, <4 x i32>, i32)
     72