VERT
DCL IN[0]
DCL SV[0], VERTEXID
DCL OUT[0], POSITION
DCL OUT[1], GENERIC[20]
DCL TEMP[0..19], ARRAY(1), LOCAL
DCL TEMP[20], LOCAL
DCL ADDR[0]
IMM[0] FLT32 {    1.0000,     0.0000,     0.0000,     0.0000}
  0: MOV TEMP[0], IMM[0].xyyy
  1: MOV TEMP[1], IMM[0].xyyy
  2: MOV TEMP[2], IMM[0].xyyy
  3: MOV TEMP[3], IMM[0].xyyy
  4: MOV TEMP[4], IMM[0].yxyy
  5: MOV TEMP[5], IMM[0].yxyy
  6: MOV TEMP[6], IMM[0].yxyy
  7: MOV TEMP[7], IMM[0].yxyy
  8: MOV TEMP[8], IMM[0].yyxx
  9: MOV TEMP[9], IMM[0].yyxx
 10: MOV TEMP[10], IMM[0].yyxx
 11: MOV TEMP[11], IMM[0].yyxx
 12: MOV TEMP[12], IMM[0].xxyy
 13: MOV TEMP[13], IMM[0].xxyy
 14: MOV TEMP[14], IMM[0].xxyy
 15: MOV TEMP[15], IMM[0].xxyy
 16: MOV TEMP[16], IMM[0].xyxx
 17: MOV TEMP[17], IMM[0].xyxx
 18: MOV TEMP[18], IMM[0].xyxx
 19: MOV TEMP[19], IMM[0].xyxx
 20: UARL ADDR[0].x, SV[0].xxxx
 21: MOV TEMP[20].xyz, TEMP[ADDR[0].x](1).xyzx
 22: MOV OUT[1], TEMP[20]
 23: MOV OUT[0], IN[0]
 24: END
; ModuleID = 'tgsi'

define void @main([17 x <16 x i8>] addrspace(2)* byval, [16 x <4 x i32>] addrspace(2)* byval, [32 x <8 x i32>] addrspace(2)* byval, [6 x <16 x i8>] addrspace(2)* inreg, [16 x <16 x i8>] addrspace(2)* inreg, i32 inreg, i32 inreg, i32, i32, i32, i32) #0 {
main_body:
  %11 = getelementptr [16 x <16 x i8>] addrspace(2)* %4, i64 0, i32 0
  %12 = load <16 x i8> addrspace(2)* %11, !tbaa !0
  %13 = add i32 %5, %7
  %14 = call <4 x float> @llvm.SI.vs.load.input(<16 x i8> %12, i32 0, i32 %13)
  %15 = extractelement <4 x float> %14, i32 0
  %16 = extractelement <4 x float> %14, i32 1
  %17 = extractelement <4 x float> %14, i32 2
  %18 = extractelement <4 x float> %14, i32 3
  %19 = add i32 %7, 0
  %20 = insertelement <20 x float> undef, float 1.000000e+00, i32 0
  %21 = insertelement <20 x float> %20, float 1.000000e+00, i32 1
  %22 = insertelement <20 x float> %21, float 1.000000e+00, i32 2
  %23 = insertelement <20 x float> %22, float 1.000000e+00, i32 3
  %24 = insertelement <20 x float> %23, float 0.000000e+00, i32 4
  %25 = insertelement <20 x float> %24, float 0.000000e+00, i32 5
  %26 = insertelement <20 x float> %25, float 0.000000e+00, i32 6
  %27 = insertelement <20 x float> %26, float 0.000000e+00, i32 7
  %28 = insertelement <20 x float> %27, float 0.000000e+00, i32 8
  %29 = insertelement <20 x float> %28, float 0.000000e+00, i32 9
  %30 = insertelement <20 x float> %29, float 0.000000e+00, i32 10
  %31 = insertelement <20 x float> %30, float 0.000000e+00, i32 11
  %32 = insertelement <20 x float> %31, float 1.000000e+00, i32 12
  %33 = insertelement <20 x float> %32, float 1.000000e+00, i32 13
  %34 = insertelement <20 x float> %33, float 1.000000e+00, i32 14
  %35 = insertelement <20 x float> %34, float 1.000000e+00, i32 15
  %36 = insertelement <20 x float> %35, float 1.000000e+00, i32 16
  %37 = insertelement <20 x float> %36, float 1.000000e+00, i32 17
  %38 = insertelement <20 x float> %37, float 1.000000e+00, i32 18
  %39 = insertelement <20 x float> %38, float 1.000000e+00, i32 19
  %40 = extractelement <20 x float> %39, i32 %19
  %41 = add i32 %7, 0
  %42 = insertelement <20 x float> undef, float 0.000000e+00, i32 0
  %43 = insertelement <20 x float> %42, float 0.000000e+00, i32 1
  %44 = insertelement <20 x float> %43, float 0.000000e+00, i32 2
  %45 = insertelement <20 x float> %44, float 0.000000e+00, i32 3
  %46 = insertelement <20 x float> %45, float 1.000000e+00, i32 4
  %47 = insertelement <20 x float> %46, float 1.000000e+00, i32 5
  %48 = insertelement <20 x float> %47, float 1.000000e+00, i32 6
  %49 = insertelement <20 x float> %48, float 1.000000e+00, i32 7
  %50 = insertelement <20 x float> %49, float 0.000000e+00, i32 8
  %51 = insertelement <20 x float> %50, float 0.000000e+00, i32 9
  %52 = insertelement <20 x float> %51, float 0.000000e+00, i32 10
  %53 = insertelement <20 x float> %52, float 0.000000e+00, i32 11
  %54 = insertelement <20 x float> %53, float 1.000000e+00, i32 12
  %55 = insertelement <20 x float> %54, float 1.000000e+00, i32 13
  %56 = insertelement <20 x float> %55, float 1.000000e+00, i32 14
  %57 = insertelement <20 x float> %56, float 1.000000e+00, i32 15
  %58 = insertelement <20 x float> %57, float 0.000000e+00, i32 16
  %59 = insertelement <20 x float> %58, float 0.000000e+00, i32 17
  %60 = insertelement <20 x float> %59, float 0.000000e+00, i32 18
  %61 = insertelement <20 x float> %60, float 0.000000e+00, i32 19
  %62 = extractelement <20 x float> %61, i32 %41
  %63 = add i32 %7, 0
  %64 = insertelement <20 x float> undef, float 0.000000e+00, i32 0
  %65 = insertelement <20 x float> %64, float 0.000000e+00, i32 1
  %66 = insertelement <20 x float> %65, float 0.000000e+00, i32 2
  %67 = insertelement <20 x float> %66, float 0.000000e+00, i32 3
  %68 = insertelement <20 x float> %67, float 0.000000e+00, i32 4
  %69 = insertelement <20 x float> %68, float 0.000000e+00, i32 5
  %70 = insertelement <20 x float> %69, float 0.000000e+00, i32 6
  %71 = insertelement <20 x float> %70, float 0.000000e+00, i32 7
  %72 = insertelement <20 x float> %71, float 1.000000e+00, i32 8
  %73 = insertelement <20 x float> %72, float 1.000000e+00, i32 9
  %74 = insertelement <20 x float> %73, float 1.000000e+00, i32 10
  %75 = insertelement <20 x float> %74, float 1.000000e+00, i32 11
  %76 = insertelement <20 x float> %75, float 0.000000e+00, i32 12
  %77 = insertelement <20 x float> %76, float 0.000000e+00, i32 13
  %78 = insertelement <20 x float> %77, float 0.000000e+00, i32 14
  %79 = insertelement <20 x float> %78, float 0.000000e+00, i32 15
  %80 = insertelement <20 x float> %79, float 1.000000e+00, i32 16
  %81 = insertelement <20 x float> %80, float 1.000000e+00, i32 17
  %82 = insertelement <20 x float> %81, float 1.000000e+00, i32 18
  %83 = insertelement <20 x float> %82, float 1.000000e+00, i32 19
  %84 = extractelement <20 x float> %83, i32 %63
  call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 32, i32 0, float %40, float %62, float %84, float 0.000000e+00)
  call void @llvm.SI.export(i32 15, i32 0, i32 1, i32 12, i32 0, float %15, float %16, float %17, float %18)
  ret void
}

; Function Attrs: nounwind readnone
declare <4 x float> @llvm.SI.vs.load.input(<16 x i8>, i32, i32) #1

declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float)

attributes #0 = { "ShaderType"="1" "unsafe-fp-math"="true" }
attributes #1 = { nounwind readnone }

!0 = metadata !{metadata !"const", null, i32 1}