Home | History | Annotate | Download | only in R600
      1 ;RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s
      2 
      3 ; Exactly one constant vector can be folded into dot4, which means exactly
      4 ; 4 MOV instructions
      5 ; CHECK: @main
      6 ; CHECK: MOV
      7 ; CHECK: MOV
      8 ; CHECK: MOV
      9 ; CHECK: MOV
     10 ; CHECK-NOT: MOV
     11 ; CHECK-NOT: MOV
     12 ; CHECK-NOT: MOV
     13 ; CHECK-NOT: MOV
     14 
     15 define void @main(float addrspace(1)* %out) {
     16 main_body:
     17   %0 = load <4 x float> addrspace(8)* null
     18   %1 = load <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>] addrspace(8)* null, i64 0, i32 1)
     19   %2 = call float @llvm.AMDGPU.dp4(<4 x float> %0,<4 x float> %1)
     20   %3 = insertelement <4 x float> undef, float %2, i32 0
     21   call void @llvm.R600.store.swizzle(<4 x float> %3, i32 0, i32 0)
     22   ret void
     23 }
     24 
     25 declare float @llvm.AMDGPU.dp4(<4 x float>, <4 x float>) #1
     26 declare void @llvm.R600.store.swizzle(<4 x float>, i32, i32)
     27 attributes #1 = { readnone }
     28