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}