[lunarglass] r1107 committed - Tests: Add AEP tests (partially off; awaiting functionality).

3 views
Skip to first unread message

lunar...@googlecode.com

unread,
Aug 17, 2015, 6:09:15 PM8/17/15
to lunargla...@googlegroups.com
Revision: 1107
Author: jo...@lunarg.com
Date: Mon Aug 17 22:08:33 2015 UTC
Log: Tests: Add AEP tests (partially off; awaiting functionality).
https://code.google.com/p/lunarglass/source/detail?r=1107

Added:
/trunk/test/aep.frag
/trunk/test/aep.geom
/trunk/test/aep.tesc
/trunk/test/aep.tese
/trunk/test/aep.vert
/trunk/test/baseResults/aep.frag.out
/trunk/test/baseResults/aep.geom.out
/trunk/test/baseResults/aep.tesc.out
/trunk/test/baseResults/aep.tese.out
/trunk/test/baseResults/aep.vert.out
Modified:
/trunk/test/runtests

=======================================
--- /dev/null
+++ /trunk/test/aep.frag Mon Aug 17 22:08:33 2015 UTC
@@ -0,0 +1,48 @@
+#version 310 es
+
+precision highp float;
+
+#extension GL_ANDROID_extension_pack_es31a : enable
+
+// - GL_KHR_blend_equation_advanced
+// - GL_OES_sample_variables
+// - GL_OES_shader_multisample_interpolation
+// - GL_EXT_geometry_shader
+// + GL_EXT_shader_io_blocks
+
+in inName {
+ vec4 color;
+} inInst;
+
+//layout(location = 0) out vec4 color; // - more than one out, if no
location?
+
+void foo_GS();
+void goodSample();
+
+void main()
+{
+// - color = inInst.color;
+ foo_GS();
+ goodSample();
+}
+
+// - GL_OES_geometry_shader
+
+void foo_GS()
+{
+ highp int l = gl_Layer; // - consume both these ...
+ highp int p = gl_PrimitiveID;
+}
+
+
+// - GL_OES_sample_variables
+
+void goodSample()
+{
+ lowp int a1 = gl_SampleID; // - consume all these
built-ins...
+ mediump vec2 a2 = gl_SamplePosition;
+ highp int a3 = gl_SampleMaskIn[0];
+ gl_SampleMask[0] = a3;
+ mediump int n1 = gl_MaxSamples;
+ mediump int n2 = gl_NumSamples;
+}
=======================================
--- /dev/null
+++ /trunk/test/aep.geom Mon Aug 17 22:08:33 2015 UTC
@@ -0,0 +1,59 @@
+#version 310 es
+
+// + GL_EXT_geometry_shader
+// + GL_EXT_geometry_point_size
+
+#extension GL_ANDROID_extension_pack_es31a : enable
+
+precision mediump float;
+
+in fromVertex {
+ in vec3 color;
+} fromV[];
+
+in vec4 nonBlockUnsized[];
+
+out toFragment {
+ out vec3 color;
+} toF;
+
+out fromVertex {
+ centroid vec3 color;
+ int len;
+ int inv;
+};
+
+layout(triangle_strip) out;
+layout(max_vertices = 200) out;
+layout(lines_adjacency) in;
+layout(invocations = 4) in;
+
+centroid in vec3 centr[];
+
+void pointSize2();
+
+void main()
+{
+ EmitVertex();
+ EndPrimitive();
+
+ color = fromV[0].color + centr[1];
+ gl_Position = gl_in[0].gl_Position;
+
+ gl_PrimitiveID = gl_PrimitiveIDIn;
+ gl_Layer = 2;
+
+ len = fromV.length(); // 4: lines_adjacency
+ inv = gl_InvocationID;
+
+ pointSize2();
+}
+
+
+#extension GL_OES_geometry_point_size : enable
+
+void pointSize2()
+{
+ highp float ps = gl_in[3].gl_PointSize;
+ gl_PointSize = ps;
+}
=======================================
--- /dev/null
+++ /trunk/test/aep.tesc Mon Aug 17 22:08:33 2015 UTC
@@ -0,0 +1,81 @@
+#version 310 es
+
+#extension GL_ANDROID_extension_pack_es31a : enable
+
+// - GL_EXT_tessellation_shader
+// + GL_EXT_tessellation_point_size
+// + GL_OES_primitive_bounding_box
+
+layout(vertices = 4) out;
+int outa[gl_out.length()];
+
+patch out vec4 patchOut;
+
+void bb();
+void pointSize();
+void foop();
+
+void main()
+{
+ barrier();
+
+ vec4 p = gl_in[1].gl_Position;
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ int iid = gl_InvocationID;
+
+ gl_out[1].gl_Position = p;
+
+ gl_TessLevelOuter[3] = 3.2;
+ gl_TessLevelInner[1] = 1.3;
+ bb();
+ pointSize();
+ foop();
+}
+
+in vec2 inb[];
+in vec2 ind[gl_MaxPatchVertices];
+
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location = 3) in vec4 ivla[];
+layout(location = 4) in vec4 ivlb[];
+
+layout(location = 3) out vec4 ovla[];
+layout(location = 4) out vec4 ovlb[];
+
+patch out pinbn {
+ int a;
+} pinbi;
+
+centroid out vec3 myColor2[];
+centroid in vec3 centr[];
+out float okaySize[4];
+
+#extension GL_OES_tessellation_point_size : enable
+
+void pointSize()
+{
+ gl_out[1].gl_PointSize = gl_in[1].gl_PointSize;
+}
+
+// for testing with gpu_shader5
+precise vec3 pv3;
+
+void foop()
+{
+ precise float d;
+
+ pv3 *= pv3;
+ // - pv3 = fma(pv3, pv3, pv3);
+ // - d = fma(d, d, d);
+}
+
+// - GL_OES_primitive_bounding_box
+
+void bb()
+{
+ gl_BoundingBoxOES[0] = vec4(0.0);
+ gl_BoundingBoxOES[1] = vec4(1.0);
+}
=======================================
--- /dev/null
+++ /trunk/test/aep.tese Mon Aug 17 22:08:33 2015 UTC
@@ -0,0 +1,60 @@
+#version 310 es
+
+#extension GL_ANDROID_extension_pack_es31a : enable
+
+// - GL_EXT_tessellation_shader
+// + GL_EXT_tessellation_point_size
+
+layout(quads, ccw) in; // - no ccw
+
+layout(fractional_odd_spacing) in;
+
+layout(point_mode) in;
+
+patch in vec4 patchIn;
+
+void pointSize();
+
+void main()
+{
+ vec4 p = gl_in[1].gl_Position;
+
+ int pvi = gl_PatchVerticesIn;
+ int pid = gl_PrimitiveID;
+ vec3 tc = gl_TessCoord;
+ float tlo = gl_TessLevelOuter[3];
+ float tli = gl_TessLevelInner[1];
+
+ gl_Position = p;
+ pointSize();
+}
+
+in vec2 inb[];
+in vec2 ind[gl_MaxPatchVertices];
+
+in testblb {
+ int f;
+} blb[];
+
+in testbld {
+ int f;
+} bld[gl_MaxPatchVertices];
+
+layout(location = 23) in vec4 ivla[];
+layout(location = 24) in vec4 ivlb[];
+
+layout(location = 23) out vec4 ovla[2];
+
+patch in pinbn {
+ int a;
+} pinbi;
+
+centroid out vec3 myColor2;
+centroid in vec3 centr[];
+
+#extension GL_OES_tessellation_point_size : enable
+
+void pointSize()
+{
+ gl_PointSize = gl_in[1].gl_PointSize;
+}
=======================================
--- /dev/null
+++ /trunk/test/aep.vert Mon Aug 17 22:08:33 2015 UTC
@@ -0,0 +1,179 @@
+#version 310 es
+
+#extension GL_ANDROID_extension_pack_es31a : enable
+
+// - GL_OES_shader_image_atomic
+// + GL_OES_texture_storage_multisample_2d_array
+// - GL_EXT_gpu_shader5
+// + GL_EXT_shader_io_blocks
+// - GL_EXT_texture_buffer
+// - GL_EXT_texture_cube_map_array
+
+uniform sampler2D sArray[4];
+uniform ubName { vec2 p; } ubInst[4];
+uniform writeonly image2D iArray[5];
+uniform int index;
+
+const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3),
ivec2(0.4));
+
+in vec2 inf, ing, inch;
+
+out outName {
+ vec4 color;
+} outInst;
+
+vec4 bufferT();
+vec4 CAT();
+vec4 MSA();
+void goodImageAtom();
+
+void main()
+{
+ // GL_EXT_gpu_shader5
+ //- precise vec2 p = fma(inf, ing, inch);
+ iArray[index];
+ vec4 color = vec4(0.0);
+ //- color += textureGatherOffset(sArray[index], ubInst[index].p,
ivec2(inf));
+ //- color += textureGatherOffsets(sArray[index], p, constOffsets);
+ outInst.color = color;
+ outInst.color += bufferT();
+ outInst.color += CAT();
+ outInst.color += MSA();
+ goodImageAtom();
+}
+
+// - GL_EXT_texture_buffer
+
+uniform highp samplerBuffer bufSamp1;
+uniform highp isamplerBuffer bufSamp2;
+uniform highp usamplerBuffer bufSamp3;
+uniform highp writeonly imageBuffer bufSamp4;
+uniform highp writeonly iimageBuffer bufSamp5;
+uniform highp writeonly uimageBuffer bufSamp6;
+
+vec4 bufferT()
+{
+ vec4 v = vec4(1.0);
+
+ highp int s1;
+ s1 = textureSize(bufSamp1);
+ v *= vec4(s1);
+ s1 = textureSize(bufSamp2);
+ v *= vec4(s1);
+ s1 = textureSize(bufSamp3);
+ v *= vec4(s1);
+
+ s1 = imageSize(bufSamp4); // - image -> texture
+ v *= vec4(s1);
+ s1 = imageSize(bufSamp5);
+ v *= vec4(s1);
+ s1 = imageSize(bufSamp6);
+ v *= vec4(s1);
+
+ v *= texelFetch(bufSamp1, s1);
+ v *= vec4(texelFetch(bufSamp2, s1));
+ v *= vec4(texelFetch(bufSamp3, s1));
+
+ return v;
+}
+
+// - GL_OES_texture_cube_map_array
+
+uniform highp writeonly imageCubeArray CA1;
+uniform highp writeonly iimageCubeArray CA2;
+uniform highp writeonly uimageCubeArray CA3;
+uniform highp samplerCubeArray CA4;
+uniform highp samplerCubeArrayShadow CA5;
+uniform highp isamplerCubeArray CA6;
+uniform highp usamplerCubeArray CA7;
+
+vec4 CAT()
+{
+ highp ivec3 iv = ivec3(0);
+ iv += textureSize(CA4, 1);
+ iv += textureSize(CA5, 1);
+ iv += textureSize(CA6, 1);
+ iv += textureSize(CA7, 1);
+
+ //iv += imageSize(CA1); // - extra argument, intermit. segfault
+ //iv += imageSize(CA2);
+ //iv += imageSize(CA3);
+
+ vec4 v = vec4(iv, 1.0);
+ v *= texture(CA4, vec4(0.5));
+ v *= texture(CA5, vec4(0.5), 3.0);
+ v *= vec4(texture(CA6, vec4(0.5)));
+ v *= vec4(texture(CA7, vec4(0.5)));
+
+ v *= textureLod(CA4, vec4(0.5), 0.24);
+ v *= vec4(textureLod(CA6, vec4(0.5), 0.26));
+ v *= vec4(textureLod(CA7, vec4(0.5), 0.27));
+
+ v *= textureGrad(CA4, vec4(0.5), vec3(0.1), vec3(0.2));
+ v *= vec4(textureGrad(CA6, vec4(0.5), vec3(0.1), vec3(0.2)));
+ v *= vec4(textureGrad(CA7, vec4(0.5), vec3(0.1), vec3(0.2)));
+
+ v *= textureGather(CA4, vec4(0.5));
+ v *= textureGather(CA4, vec4(0.5), 2);
+ v *= vec4(textureGather(CA6, vec4(0.5)));
+ v *= vec4(textureGather(CA6, vec4(0.5), 1));
+ v *= vec4(textureGather(CA7, vec4(0.5)));
+ v *= vec4(textureGather(CA7, vec4(0.5), 0));
+
+ v *= textureGather(CA5, vec4(0.5), 2.5);
+
+ return v;
+}
+
+// + GL_OES_texture_storage_multisample_2d_array
+
+uniform highp sampler2DMSArray samp2DMSA;
+uniform highp isampler2DMSArray samp2DMSAi;
+uniform highp usampler2DMSArray samp2DMSAu;
+
+vec4 MSA()
+{
+ highp ivec3 iv = ivec3(0);
+ iv += textureSize(samp2DMSA);
+ iv += textureSize(samp2DMSAi);
+ iv += textureSize(samp2DMSAu);
+
+ vec4 v = vec4(iv, 1.0);
+ v *= texelFetch(samp2DMSA, ivec3(5), 2);
+ v *= vec4(texelFetch(samp2DMSAi, ivec3(5), 2));
+ v *= vec4(texelFetch(samp2DMSAu, ivec3(5), 2));
+
+ return v;
+}
+
+// - GL_OES_shader_image_atomic
+
+uniform layout(r32f) highp image2D im2Df;
+uniform layout(r32ui) highp uimage2D im2Du;
+uniform layout(r32i) highp iimage2D im2Di;
+uniform ivec2 P;
+
+void goodImageAtom()
+{
+ float datf;
+ int dati;
+ uint datu;
+
+// - imageAtomicAdd( im2Di, P, dati);
+// imageAtomicAdd( im2Du, P, datu);
+// imageAtomicMin( im2Di, P, dati);
+// imageAtomicMin( im2Du, P, datu);
+// imageAtomicMax( im2Di, P, dati);
+// imageAtomicMax( im2Du, P, datu);
+// imageAtomicAnd( im2Di, P, dati);
+// imageAtomicAnd( im2Du, P, datu);
+// imageAtomicOr( im2Di, P, dati);
+// imageAtomicOr( im2Du, P, datu);
+// imageAtomicXor( im2Di, P, dati);
+// imageAtomicXor( im2Du, P, datu);
+// imageAtomicExchange(im2Di, P, dati);
+// imageAtomicExchange(im2Du, P, datu);
+// imageAtomicExchange(im2Df, P, datf);
+// imageAtomicCompSwap(im2Di, P, 3, dati);
+// imageAtomicCompSwap(im2Du, P, 5u, datu);
+}
=======================================
--- /dev/null
+++ /trunk/test/baseResults/aep.frag.out Mon Aug 17 22:08:33 2015 UTC
@@ -0,0 +1,203 @@
+
+Top IR:
+; ModuleID = 'Glslang'
+
+%inName = type { <4 x float> }
+
+@gl_Layer = global i32 0
+@gl_PrimitiveID = global i32 0
+@gl_SampleID = global i32 0
+@gl_SamplePosition = global <2 x float> zeroinitializer
+@gl_SampleMaskIn = global [1 x i32] zeroinitializer
+@gl_SampleMask = global [1 x i32] zeroinitializer
+@gl_NumSamples = external addrspace(2) constant i32
+@inInst = global %inName zeroinitializer
+
+define fastcc void @main() {
+entry:
+ br label %mainBody
+
+mainBody: ; preds = %entry
+ call void @"foo_GS("()
+ call void @"goodSample("()
+ br label %stage-epilogue
+
+stage-epilogue: ; preds = %mainBody
+ br label %stage-exit
+
+stage-exit: ; preds = %stage-epilogue
+ ret void
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc void @"foo_GS("() #0 {
+entry:
+ %p = alloca i32
+ %l = alloca i32
+ %l1 = load i32* @gl_Layer
+ store i32 %l1, i32* %l
+ %p2 = load i32* @gl_PrimitiveID
+ store i32 %p2, i32* %p
+ ret void
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc void @"goodSample("() #0 {
+entry:
+ %n2 = alloca i32
+ %n1 = alloca i32
+ %a3 = alloca i32
+ %a2 = alloca <2 x float>
+ %a1 = alloca i32
+ %a11 = load i32* @gl_SampleID
+ store i32 %a11, i32* %a1
+ %a22 = load <2 x float>* @gl_SamplePosition
+ store <2 x float> %a22, <2 x float>* %a2
+ %a33 = load i32* getelementptr inbounds ([1 x i32]* @gl_SampleMaskIn,
i32 0, i32 0)
+ store i32 %a33, i32* %a3
+ %0 = load i32* %a3
+ store i32 %0, i32* getelementptr inbounds ([1 x i32]* @gl_SampleMask,
i32 0, i32 0)
+ store i32 0, i32* %n1
+ %n24 = load i32 addrspace(2)* @gl_NumSamples, !gla.uniform !19
+ store i32 %n24, i32* %n2
+ ret void
+}
+
+attributes #0 = { alwaysinline }
+
+!gla.entrypoint = !{!0}
+!gla.inputs = !{!1, !3, !5, !7, !9, !11}
+!gla.outputs = !{!17}
+!gla.uniforms = !{!19}
+!gla.noStaticUse = !{!11}
+
+!0 = metadata !{metadata !"main", i32 15}
+!1 = metadata !{metadata !"gl_Layer", i32 1, i32* @gl_Layer_typeProxy,
metadata !2}
+!2 = metadata !{i32 0, i32 3, i32 1024, null, i32 0, i32 32}
+!3 = metadata !{metadata !"gl_PrimitiveID", i32 1, i32*
@gl_PrimitiveID_typeProxy, metadata !4}
+!4 = metadata !{i32 0, i32 3, i32 1025, null, i32 0, i32 31}
+!5 = metadata !{metadata !"gl_SampleID", i32 1, i32*
@gl_SampleID_typeProxy, metadata !6}
+!6 = metadata !{i32 0, i32 1, i32 1026, null, i32 0, i32 46}
+!7 = metadata !{metadata !"gl_SamplePosition", i32 1, <2 x float>*
@gl_SamplePosition_typeProxy, metadata !8}
+!8 = metadata !{i32 0, i32 2, i32 1027, null, i32 1, i32 47}
+!9 = metadata !{metadata !"gl_SampleMaskIn", i32 1, [1 x i32]*
@gl_SampleMaskIn_typeProxy, metadata !10}
+!10 = metadata !{i32 0, i32 3, i32 1028, null, i32 0, i32 48}
+!11 = metadata !{metadata !"inInst", i32 17, %inName* @inInst_typeProxy,
metadata !12, metadata !13}
+!12 = metadata !{i32 0, i32 0, i32 1030, null, i32 0}
+!13 = metadata !{metadata !"inName", metadata !14, metadata !"color",
metadata !15}
+!14 = metadata !{i32 0, i32 0, i32 1024, null}
+!15 = metadata !{metadata !"", metadata !16}
+!16 = metadata !{i32 0, i32 3, i32 1024, null}
+!17 = metadata !{metadata !"gl_SampleMask", i32 7, [1 x i32]*
@gl_SampleMask_typeProxy, metadata !18}
+!18 = metadata !{i32 0, i32 3, i32 1029, null, i32 0, i32 48}
+!19 = metadata !{metadata !"gl_NumSamples", i32 12, i32*
@gl_NumSamples_typeProxy, metadata !20}
+!20 = metadata !{i32 0, i32 1, i32 1024, null}
+
+
+Bottom IR:
+; ModuleID = 'Glslang'
+
+%inName = type { <4 x float> }
+
+@gl_Layer = global i32 0
+@gl_PrimitiveID = global i32 0
+@gl_SampleID = global i32 0
+@gl_SamplePosition = global <2 x float> zeroinitializer
+@gl_SampleMaskIn = global [1 x i32] zeroinitializer
+@gl_SampleMask = global [1 x i32] zeroinitializer
+@inInst = global %inName zeroinitializer
+
+define fastcc void @main() {
+entry:
+ %gla_constGEP = getelementptr [1 x i32]* @gl_SampleMaskIn, i32 0, i32 0
+ %a33.i = load i32* %gla_constGEP, align 4
+ %gla_constGEP1 = getelementptr [1 x i32]* @gl_SampleMask, i32 0, i32 0
+ store i32 %a33.i, i32* %gla_constGEP1, align 4
+ br label %stage-epilogue
+
+stage-epilogue: ; preds = %entry
+ br label %stage-exit
+
+stage-exit: ; preds = %stage-epilogue
+ ret void
+}
+
+!gla.entrypoint = !{!0}
+!gla.inputs = !{!1, !3, !5, !7, !9, !11}
+!gla.outputs = !{!17}
+!gla.uniforms = !{!19}
+!gla.noStaticUse = !{!11}
+
+!0 = metadata !{metadata !"main", i32 15}
+!1 = metadata !{metadata !"gl_Layer", i32 1, i32* @gl_Layer_typeProxy,
metadata !2}
+!2 = metadata !{i32 0, i32 3, i32 1024, null, i32 0, i32 32}
+!3 = metadata !{metadata !"gl_PrimitiveID", i32 1, i32*
@gl_PrimitiveID_typeProxy, metadata !4}
+!4 = metadata !{i32 0, i32 3, i32 1025, null, i32 0, i32 31}
+!5 = metadata !{metadata !"gl_SampleID", i32 1, i32*
@gl_SampleID_typeProxy, metadata !6}
+!6 = metadata !{i32 0, i32 1, i32 1026, null, i32 0, i32 46}
+!7 = metadata !{metadata !"gl_SamplePosition", i32 1, <2 x float>*
@gl_SamplePosition_typeProxy, metadata !8}
+!8 = metadata !{i32 0, i32 2, i32 1027, null, i32 1, i32 47}
+!9 = metadata !{metadata !"gl_SampleMaskIn", i32 1, [1 x i32]*
@gl_SampleMaskIn_typeProxy, metadata !10}
+!10 = metadata !{i32 0, i32 3, i32 1028, null, i32 0, i32 48}
+!11 = metadata !{metadata !"inInst", i32 17, %inName* @inInst_typeProxy,
metadata !12, metadata !13}
+!12 = metadata !{i32 0, i32 0, i32 1030, null, i32 0}
+!13 = metadata !{metadata !"inName", metadata !14, metadata !"color",
metadata !15}
+!14 = metadata !{i32 0, i32 0, i32 1024, null}
+!15 = metadata !{metadata !"", metadata !16}
+!16 = metadata !{i32 0, i32 3, i32 1024, null}
+!17 = metadata !{metadata !"gl_SampleMask", i32 7, [1 x i32]*
@gl_SampleMask_typeProxy, metadata !18}
+!18 = metadata !{i32 0, i32 3, i32 1029, null, i32 0, i32 48}
+!19 = metadata !{metadata !"gl_NumSamples", i32 12, i32*
@gl_NumSamples_typeProxy, metadata !20}
+!20 = metadata !{i32 0, i32 1, i32 1024, null}
+#version 310 es
+// LunarGOO output
+#extension GL_ANDROID_extension_pack_es31a : enable
+#extension GL_EXT_geometry_shader : enable
+#extension GL_EXT_gpu_shader5 : enable
+#extension GL_EXT_primitive_bounding_box : enable
+#extension GL_EXT_shader_io_blocks : enable
+#extension GL_EXT_tessellation_shader : enable
+#extension GL_EXT_texture_buffer : enable
+#extension GL_EXT_texture_cube_map_array : enable
+#extension GL_KHR_blend_equation_advanced : enable
+#extension GL_OES_sample_variables : enable
+#extension GL_OES_shader_image_atomic : enable
+#extension GL_OES_shader_multisample_interpolation : enable
+#extension GL_OES_texture_storage_multisample_2d_array : enable
+precision mediump float; // this will be almost entirely overridden by
individual declarations
+in inName {
+ highp vec4 color;
+} inInst;
+
+void main()
+{
+ gl_SampleMask[0] = gl_SampleMaskIn[0];
+
+}
+
+#version 310 es
+// LunarGOO output
+#extension GL_ANDROID_extension_pack_es31a : enable
+#extension GL_EXT_geometry_shader : enable
+#extension GL_EXT_gpu_shader5 : enable
+#extension GL_EXT_primitive_bounding_box : enable
+#extension GL_EXT_shader_io_blocks : enable
+#extension GL_EXT_tessellation_shader : enable
+#extension GL_EXT_texture_buffer : enable
+#extension GL_EXT_texture_cube_map_array : enable
+#extension GL_KHR_blend_equation_advanced : enable
+#extension GL_OES_sample_variables : enable
+#extension GL_OES_shader_image_atomic : enable
+#extension GL_OES_shader_multisample_interpolation : enable
+#extension GL_OES_texture_storage_multisample_2d_array : enable
+precision mediump float; // this will be almost entirely overridden by
individual declarations
+in inName {
+ highp vec4 color;
+} inInst;
+
+void main()
+{
+ gl_SampleMask[0] = gl_SampleMaskIn[0];
+
+}
+
=======================================
--- /dev/null
+++ /trunk/test/baseResults/aep.geom.out Mon Aug 17 22:08:33 2015 UTC
@@ -0,0 +1,340 @@
+
+Top IR:
+; ModuleID = 'Glslang'
+
+%fromVertex = type { <3 x float>, i32, i32 }
+%fromVertex.0 = type { <3 x float> }
+%gl_PerVertex = type { <4 x float>, float }
+%gl_PerVertex.1 = type { <4 x float>, float }
+%toFragment = type { <3 x float> }
+
+@"anon@0" = global %fromVertex zeroinitializer
+@fromV = global [4 x %fromVertex.0] zeroinitializer
+@centr = global [4 x <3 x float>] zeroinitializer
+@"anon@1" = global %gl_PerVertex zeroinitializer
+@gl_in = global [4 x %gl_PerVertex.1] zeroinitializer
+@gl_PrimitiveID = global i32 0
+@gl_PrimitiveIDIn = global i32 0
+@gl_Layer = global i32 0
+@gl_InvocationID = global i32 0
+@nonBlockUnsized = global [4 x <4 x float>] zeroinitializer
+@toF = global %toFragment zeroinitializer
+
+define fastcc void @main() {
+entry:
+ br label %mainBody
+
+mainBody: ; preds = %entry
+ call void @llvm.gla.emitVertex()
+ call void @llvm.gla.endPrimitive()
+ %0 = load <3 x float>* getelementptr inbounds ([4 x %fromVertex.0]*
@fromV, i32 0, i32 0, i32 0)
+ %1 = load <3 x float>* getelementptr inbounds ([4 x <3 x float>]*
@centr, i32 0, i32 1)
+ %2 = fadd <3 x float> %0, %1, !gla.precision !40
+ store <3 x float> %2, <3 x float>* getelementptr inbounds (%fromVertex*
@"anon@0", i32 0, i32 0)
+ %3 = load <4 x float>* getelementptr inbounds ([4 x %gl_PerVertex.1]*
@gl_in, i32 0, i32 0, i32 0)
+ store <4 x float> %3, <4 x float>* getelementptr inbounds
(%gl_PerVertex* @"anon@1", i32 0, i32 0)
+ %gl_PrimitiveID = load i32* @gl_PrimitiveIDIn
+ store i32 %gl_PrimitiveID, i32* @gl_PrimitiveID
+ store i32 2, i32* @gl_Layer
+ store i32 4, i32* getelementptr inbounds (%fromVertex* @"anon@0", i32 0,
i32 1)
+ %4 = load i32* @gl_InvocationID
+ store i32 %4, i32* getelementptr inbounds (%fromVertex* @"anon@0", i32
0, i32 2)
+ call void @"pointSize2("()
+ br label %stage-epilogue
+
+stage-epilogue: ; preds = %mainBody
+ br label %stage-exit
+
+stage-exit: ; preds = %stage-epilogue
+ ret void
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc void @"pointSize2("() #0 {
+entry:
+ %ps = alloca float
+ %ps1 = load float* getelementptr inbounds ([4 x %gl_PerVertex.1]*
@gl_in, i32 0, i32 3, i32 1)
+ store float %ps1, float* %ps
+ %0 = load float* %ps
+ store float %0, float* getelementptr inbounds (%gl_PerVertex* @"anon@1",
i32 0, i32 1)
+ ret void
+}
+
+; Function Attrs: nounwind
+declare void @llvm.gla.emitVertex() #1
+
+; Function Attrs: nounwind
+declare void @llvm.gla.endPrimitive() #1
+
+attributes #0 = { alwaysinline }
+attributes #1 = { nounwind }
+
+!gla.invocations = !{!0}
+!gla.numVertices = !{!1}
+!gla.inputPrimitive = !{!2}
+!gla.outputPrimitive = !{!3}
+!gla.entrypoint = !{!4}
+!gla.outputs = !{!5, !13, !20, !22, !24}
+!gla.inputs = !{!27, !30, !32, !34, !36, !38}
+!gla.noStaticUse = !{!38, !24}
+
+!0 = metadata !{i32 4}
+!1 = metadata !{i32 200}
+!2 = metadata !{i32 3}
+!3 = metadata !{i32 7}
+!4 = metadata !{metadata !"main", i32 15}
+!5 = metadata !{metadata !"", i32 16, %fromVertex* @"anon@0_typeProxy",
metadata !6, metadata !7}
+!6 = metadata !{i32 0, i32 0, i32 1024, null, i32 0}
+!7 = metadata !{metadata !"fromVertex", metadata !8, metadata !"color",
metadata !9, metadata !"len", metadata !11, metadata !"inv", metadata !11}
+!8 = metadata !{i32 0, i32 0, i32 1024, null}
+!9 = metadata !{metadata !"", metadata !10}
+!10 = metadata !{i32 0, i32 2, i32 1024, null}
+!11 = metadata !{metadata !"", metadata !12}
+!12 = metadata !{i32 0, i32 3, i32 1024, null}
+!13 = metadata !{metadata !"", i32 16, %gl_PerVertex* @"anon@1_typeProxy",
metadata !14, metadata !15}
+!14 = metadata !{i32 0, i32 0, i32 1035, null, i32 0}
+!15 = metadata !{metadata !"gl_PerVertex", metadata !8,
metadata !"gl_Position", metadata !16, metadata !"gl_PointSize",
metadata !18}
+!16 = metadata !{metadata !"", metadata !17}
+!17 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 9}
+!18 = metadata !{metadata !"", metadata !19}
+!19 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 10}
+!20 = metadata !{metadata !"gl_PrimitiveID", i32 7, i32*
@gl_PrimitiveID_typeProxy, metadata !21}
+!21 = metadata !{i32 0, i32 3, i32 1045, null, i32 0, i32 31}
+!22 = metadata !{metadata !"gl_Layer", i32 7, i32* @gl_Layer_typeProxy,
metadata !23}
+!23 = metadata !{i32 0, i32 3, i32 1047, null, i32 0, i32 32}
+!24 = metadata !{metadata !"toF", i32 16, %toFragment* @toF_typeProxy,
metadata !25, metadata !26}
+!25 = metadata !{i32 0, i32 0, i32 1053, null, i32 0}
+!26 = metadata !{metadata !"toFragment", metadata !8, metadata !"color",
metadata !9}
+!27 = metadata !{metadata !"fromV", i32 17, [4 x %fromVertex.0]*
@fromV_typeProxy, metadata !28, metadata !29}
+!28 = metadata !{i32 0, i32 0, i32 1027, null, i32 0}
+!29 = metadata !{metadata !"fromVertex", metadata !8, metadata !"color",
metadata !9}
+!30 = metadata !{metadata !"centr", i32 1, [4 x <3 x float>]*
@centr_typeProxy, metadata !31}
+!31 = metadata !{i32 0, i32 2, i32 1031, null, i32 512}
+!32 = metadata !{metadata !"gl_in", i32 17, [4 x %gl_PerVertex.1]*
@gl_in_typeProxy, metadata !33, metadata !15}
+!33 = metadata !{i32 0, i32 0, i32 1037, null, i32 0}
+!34 = metadata !{metadata !"gl_PrimitiveIDIn", i32 1, i32*
@gl_PrimitiveIDIn_typeProxy, metadata !35}
+!35 = metadata !{i32 0, i32 3, i32 1046, null, i32 0, i32 31}
+!36 = metadata !{metadata !"gl_InvocationID", i32 1, i32*
@gl_InvocationID_typeProxy, metadata !37}
+!37 = metadata !{i32 0, i32 3, i32 1048, null, i32 0, i32 30}
+!38 = metadata !{metadata !"nonBlockUnsized", i32 1, [4 x <4 x float>]*
@nonBlockUnsized_typeProxy, metadata !39}
+!39 = metadata !{i32 0, i32 2, i32 1049, null, i32 0}
+!40 = metadata !{i32 2}
+
+
+Bottom IR:
+; ModuleID = 'Glslang'
+
+%fromVertex = type { <3 x float>, i32, i32 }
+%fromVertex.0 = type { <3 x float> }
+%gl_PerVertex = type { <4 x float>, float }
+%gl_PerVertex.1 = type { <4 x float>, float }
+%toFragment = type { <3 x float> }
+
+@"anon@0" = global %fromVertex zeroinitializer
+@fromV = global [4 x %fromVertex.0] zeroinitializer
+@centr = global [4 x <3 x float>] zeroinitializer
+@"anon@1" = global %gl_PerVertex zeroinitializer
+@gl_in = global [4 x %gl_PerVertex.1] zeroinitializer
+@gl_PrimitiveID = global i32 0
+@gl_PrimitiveIDIn = global i32 0
+@gl_Layer = global i32 0
+@gl_InvocationID = global i32 0
+@nonBlockUnsized = global [4 x <4 x float>] zeroinitializer
+@toF = global %toFragment zeroinitializer
+
+define fastcc void @main() {
+entry:
+ call void @llvm.gla.emitVertex()
+ call void @llvm.gla.endPrimitive()
+ %gla_constGEP = getelementptr [4 x %fromVertex.0]* @fromV, i32 0, i32 0,
i32 0
+ %0 = load <3 x float>* %gla_constGEP, align 16
+ %gla_constGEP1 = getelementptr [4 x <3 x float>]* @centr, i32 0, i32 1
+ %1 = load <3 x float>* %gla_constGEP1, align 16
+ %2 = fadd <3 x float> %0, %1, !gla.precision !40
+ %gla_constGEP2 = getelementptr %fromVertex* @"anon@0", i32 0, i32 0
+ store <3 x float> %2, <3 x float>* %gla_constGEP2, align 16
+ %gla_constGEP3 = getelementptr [4 x %gl_PerVertex.1]* @gl_in, i32 0, i32
0, i32 0
+ %3 = load <4 x float>* %gla_constGEP3, align 16
+ %gla_constGEP4 = getelementptr %gl_PerVertex* @"anon@1", i32 0, i32 0
+ store <4 x float> %3, <4 x float>* %gla_constGEP4, align 16
+ %gl_PrimitiveID = load i32* @gl_PrimitiveIDIn, align 4
+ store i32 %gl_PrimitiveID, i32* @gl_PrimitiveID, align 4
+ store i32 2, i32* @gl_Layer, align 4
+ %gla_constGEP5 = getelementptr %fromVertex* @"anon@0", i32 0, i32 1
+ store i32 4, i32* %gla_constGEP5, align 16
+ %4 = load i32* @gl_InvocationID, align 4
+ %gla_constGEP6 = getelementptr %fromVertex* @"anon@0", i32 0, i32 2
+ store i32 %4, i32* %gla_constGEP6, align 4
+ %gla_constGEP7 = getelementptr [4 x %gl_PerVertex.1]* @gl_in, i32 0, i32
3, i32 1
+ %ps1.i = load float* %gla_constGEP7, align 16
+ %gla_constGEP8 = getelementptr %gl_PerVertex* @"anon@1", i32 0, i32 1
+ store float %ps1.i, float* %gla_constGEP8, align 16
+ br label %stage-epilogue
+
+stage-epilogue: ; preds = %entry
+ br label %stage-exit
+
+stage-exit: ; preds = %stage-epilogue
+ ret void
+}
+
+; Function Attrs: nounwind
+declare void @llvm.gla.emitVertex() #0
+
+; Function Attrs: nounwind
+declare void @llvm.gla.endPrimitive() #0
+
+attributes #0 = { nounwind }
+
+!gla.invocations = !{!0}
+!gla.numVertices = !{!1}
+!gla.inputPrimitive = !{!2}
+!gla.outputPrimitive = !{!3}
+!gla.entrypoint = !{!4}
+!gla.outputs = !{!5, !13, !20, !22, !24}
+!gla.inputs = !{!27, !30, !32, !34, !36, !38}
+!gla.noStaticUse = !{!38, !24}
+
+!0 = metadata !{i32 4}
+!1 = metadata !{i32 200}
+!2 = metadata !{i32 3}
+!3 = metadata !{i32 7}
+!4 = metadata !{metadata !"main", i32 15}
+!5 = metadata !{metadata !"", i32 16, %fromVertex* @"anon@0_typeProxy",
metadata !6, metadata !7}
+!6 = metadata !{i32 0, i32 0, i32 1024, null, i32 0}
+!7 = metadata !{metadata !"fromVertex", metadata !8, metadata !"color",
metadata !9, metadata !"len", metadata !11, metadata !"inv", metadata !11}
+!8 = metadata !{i32 0, i32 0, i32 1024, null}
+!9 = metadata !{metadata !"", metadata !10}
+!10 = metadata !{i32 0, i32 2, i32 1024, null}
+!11 = metadata !{metadata !"", metadata !12}
+!12 = metadata !{i32 0, i32 3, i32 1024, null}
+!13 = metadata !{metadata !"", i32 16, %gl_PerVertex* @"anon@1_typeProxy",
metadata !14, metadata !15}
+!14 = metadata !{i32 0, i32 0, i32 1035, null, i32 0}
+!15 = metadata !{metadata !"gl_PerVertex", metadata !8,
metadata !"gl_Position", metadata !16, metadata !"gl_PointSize",
metadata !18}
+!16 = metadata !{metadata !"", metadata !17}
+!17 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 9}
+!18 = metadata !{metadata !"", metadata !19}
+!19 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 10}
+!20 = metadata !{metadata !"gl_PrimitiveID", i32 7, i32*
@gl_PrimitiveID_typeProxy, metadata !21}
+!21 = metadata !{i32 0, i32 3, i32 1045, null, i32 0, i32 31}
+!22 = metadata !{metadata !"gl_Layer", i32 7, i32* @gl_Layer_typeProxy,
metadata !23}
+!23 = metadata !{i32 0, i32 3, i32 1047, null, i32 0, i32 32}
+!24 = metadata !{metadata !"toF", i32 16, %toFragment* @toF_typeProxy,
metadata !25, metadata !26}
+!25 = metadata !{i32 0, i32 0, i32 1053, null, i32 0}
+!26 = metadata !{metadata !"toFragment", metadata !8, metadata !"color",
metadata !9}
+!27 = metadata !{metadata !"fromV", i32 17, [4 x %fromVertex.0]*
@fromV_typeProxy, metadata !28, metadata !29}
+!28 = metadata !{i32 0, i32 0, i32 1027, null, i32 0}
+!29 = metadata !{metadata !"fromVertex", metadata !8, metadata !"color",
metadata !9}
+!30 = metadata !{metadata !"centr", i32 1, [4 x <3 x float>]*
@centr_typeProxy, metadata !31}
+!31 = metadata !{i32 0, i32 2, i32 1031, null, i32 512}
+!32 = metadata !{metadata !"gl_in", i32 17, [4 x %gl_PerVertex.1]*
@gl_in_typeProxy, metadata !33, metadata !15}
+!33 = metadata !{i32 0, i32 0, i32 1037, null, i32 0}
+!34 = metadata !{metadata !"gl_PrimitiveIDIn", i32 1, i32*
@gl_PrimitiveIDIn_typeProxy, metadata !35}
+!35 = metadata !{i32 0, i32 3, i32 1046, null, i32 0, i32 31}
+!36 = metadata !{metadata !"gl_InvocationID", i32 1, i32*
@gl_InvocationID_typeProxy, metadata !37}
+!37 = metadata !{i32 0, i32 3, i32 1048, null, i32 0, i32 30}
+!38 = metadata !{metadata !"nonBlockUnsized", i32 1, [4 x <4 x float>]*
@nonBlockUnsized_typeProxy, metadata !39}
+!39 = metadata !{i32 0, i32 2, i32 1049, null, i32 0}
+!40 = metadata !{i32 2}
+#version 310 es
+// LunarGOO output
+#extension GL_ANDROID_extension_pack_es31a : enable
+#extension GL_EXT_geometry_shader : enable
+#extension GL_EXT_gpu_shader5 : enable
+#extension GL_EXT_primitive_bounding_box : enable
+#extension GL_EXT_shader_io_blocks : enable
+#extension GL_EXT_tessellation_shader : enable
+#extension GL_EXT_texture_buffer : enable
+#extension GL_EXT_texture_cube_map_array : enable
+#extension GL_KHR_blend_equation_advanced : enable
+#extension GL_OES_geometry_point_size : enable
+#extension GL_OES_sample_variables : enable
+#extension GL_OES_shader_image_atomic : enable
+#extension GL_OES_shader_multisample_interpolation : enable
+#extension GL_OES_texture_storage_multisample_2d_array : enable
+layout(lines_adjacency) in;
+layout(invocations = 4) in;
+layout(triangle_strip) out;
+layout(max_vertices = 200) out;
+in fromVertex {
+ mediump vec3 color;
+} fromV[4];
+in mediump vec3 centr[4];
+in mediump vec4 nonBlockUnsized[4];
+out fromVertex {
+ mediump vec3 color;
+ highp int len;
+ highp int inv;
+} ;
+out toFragment {
+ mediump vec3 color;
+} toF;
+const int C_2 = 2;
+const int C_4 = 4;
+
+void main()
+{
+ EmitVertex();
+ EndPrimitive();
+ mediump vec3 H_g00yqf1 = centr[1] + fromV[0].color;
+ color = H_g00yqf1;
+ gl_Position = gl_in[0].gl_Position;
+ gl_PrimitiveID = gl_PrimitiveIDIn;
+ gl_Layer = C_2;
+ len = C_4;
+ inv = gl_InvocationID;
+ gl_PointSize = gl_in[3].gl_PointSize;
+
+}
+
+#version 310 es
+// LunarGOO output
+#extension GL_ANDROID_extension_pack_es31a : enable
+#extension GL_EXT_geometry_shader : enable
+#extension GL_EXT_gpu_shader5 : enable
+#extension GL_EXT_primitive_bounding_box : enable
+#extension GL_EXT_shader_io_blocks : enable
+#extension GL_EXT_tessellation_shader : enable
+#extension GL_EXT_texture_buffer : enable
+#extension GL_EXT_texture_cube_map_array : enable
+#extension GL_KHR_blend_equation_advanced : enable
+#extension GL_OES_geometry_point_size : enable
+#extension GL_OES_sample_variables : enable
+#extension GL_OES_shader_image_atomic : enable
+#extension GL_OES_shader_multisample_interpolation : enable
+#extension GL_OES_texture_storage_multisample_2d_array : enable
+layout(lines_adjacency) in;
+layout(invocations = 4) in;
+layout(triangle_strip) out;
+layout(max_vertices = 200) out;
+in mediump vec3 centr[4];
+in fromVertex {
+ mediump vec3 color;
+} fromV[4];
+in mediump vec4 nonBlockUnsized[4];
+out fromVertex {
+ mediump vec3 color;
+ highp int len;
+ highp int inv;
+} ;
+out toFragment {
+ mediump vec3 color;
+} toF;
+const int C_2 = 2;
+const int C_4 = 4;
+
+void main()
+{
+ EmitVertex();
+ EndPrimitive();
+ mediump vec3 H_g00yqf = centr[1] + fromV[0].color;
+ color = H_g00yqf;
+ gl_Position = gl_in[0].gl_Position;
+ gl_PrimitiveID = gl_PrimitiveIDIn;
+ gl_Layer = C_2;
+ len = C_4;
+ inv = gl_InvocationID;
+ gl_PointSize = gl_in[3].gl_PointSize;
+
+}
+
=======================================
--- /dev/null
+++ /trunk/test/baseResults/aep.tesc.out Mon Aug 17 22:08:33 2015 UTC
@@ -0,0 +1,334 @@
+
+***Unsupported functionality: built in variable
+
+Top IR:
+; ModuleID = 'Glslang'
+
+%gl_PerVertex = type { <4 x float>, float }
+%gl_PerVertex.0 = type { <4 x float>, float }
+%pinbn = type { i32 }
+
+@gl_in = global [32 x %gl_PerVertex] zeroinitializer
+@gl_PatchVerticesIn = global i32 0
+@gl_PrimitiveID = global i32 0
+@gl_InvocationID = global i32 0
+@gl_out = global [4 x %gl_PerVertex.0] zeroinitializer
+@gl_TessLevelOuter = global [4 x float] zeroinitializer
+@gl_TessLevelInner = global [2 x float] zeroinitializer
+@gl_BoundingBoxOES = global [2 x <4 x float>] zeroinitializer
+@outa = internal global [4 x i32] zeroinitializer
+@patchOut = global <4 x float> zeroinitializer
+@inb = global [32 x <2 x float>] zeroinitializer
+@ind = global [32 x <2 x float>] zeroinitializer
+@ivla = global [32 x <4 x float>] zeroinitializer
+@ivlb = global [32 x <4 x float>] zeroinitializer
+@ovla = global [4 x <4 x float>] zeroinitializer
+@ovlb = global [4 x <4 x float>] zeroinitializer
+@pinbi = global %pinbn zeroinitializer
+@myColor2 = global [4 x <3 x float>] zeroinitializer
+@centr = global [32 x <3 x float>] zeroinitializer
+@okaySize = global [4 x float] zeroinitializer
+
+define fastcc void @main() {
+entry:
+ %iid = alloca i32
+ %pid = alloca i32
+ %pvi = alloca i32
+ %p = alloca <4 x float>
+ br label %mainBody
+
+mainBody: ; preds = %entry
+ call void @llvm.gla.barrier()
+ %p1 = load <4 x float>* getelementptr inbounds ([32 x %gl_PerVertex]*
@gl_in, i32 0, i32 1, i32 0)
+ store <4 x float> %p1, <4 x float>* %p
+ %pvi2 = load i32* @gl_PatchVerticesIn
+ store i32 %pvi2, i32* %pvi
+ %pid3 = load i32* @gl_PrimitiveID
+ store i32 %pid3, i32* %pid
+ %iid4 = load i32* @gl_InvocationID
+ store i32 %iid4, i32* %iid
+ %0 = load <4 x float>* %p
+ store <4 x float> %0, <4 x float>* getelementptr inbounds ([4
x %gl_PerVertex.0]* @gl_out, i32 0, i32 1, i32 0)
+ store float 0x40099999A0000000, float* getelementptr inbounds ([4 x
float]* @gl_TessLevelOuter, i32 0, i32 3)
+ store float 0x3FF4CCCCC0000000, float* getelementptr inbounds ([2 x
float]* @gl_TessLevelInner, i32 0, i32 1)
+ call void @"bb("()
+ call void @"pointSize("()
+ call void @"foop("()
+ br label %stage-epilogue
+
+stage-epilogue: ; preds = %mainBody
+ br label %stage-exit
+
+stage-exit: ; preds = %stage-epilogue
+ ret void
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc void @"pointSize("() #0 {
+entry:
+ %0 = load float* getelementptr inbounds ([32 x %gl_PerVertex]* @gl_in,
i32 0, i32 1, i32 1)
+ store float %0, float* getelementptr inbounds ([4 x %gl_PerVertex.0]*
@gl_out, i32 0, i32 1, i32 1)
+ ret void
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc void @"foop("() #0 {
+entry:
+ %pv3 = alloca <3 x float>
+ %0 = load <3 x float>* %pv3
+ %1 = load <3 x float>* %pv3
+ %pv31 = fmul <3 x float> %1, %0, !gla.precision !48
+ store <3 x float> %pv31, <3 x float>* %pv3
+ ret void
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc void @"bb("() #0 {
+entry:
+ store <4 x float> zeroinitializer, <4 x float>* getelementptr inbounds
([2 x <4 x float>]* @gl_BoundingBoxOES, i32 0, i32 0)
+ store <4 x float> <float 1.000000e+00, float 1.000000e+00, float
1.000000e+00, float 1.000000e+00>, <4 x float>* getelementptr inbounds ([2
x <4 x float>]* @gl_BoundingBoxOES, i32 0, i32 1)
+ ret void
+}
+
+; Function Attrs: nounwind
+declare void @llvm.gla.barrier() #1
+
+attributes #0 = { alwaysinline }
+attributes #1 = { nounwind }
+
+!gla.numVertices = !{!0}
+!gla.entrypoint = !{!1}
+!gla.inputs = !{!2, !8, !10, !12, !14, !16, !18, !20, !22}
+!gla.outputs = !{!24, !31, !33, !35, !37, !39, !40, !41, !44, !46}
+!gla.noStaticUse = !{!37, !14, !16, !18, !20, !39, !40, !41, !44, !22, !46}
+
+!0 = metadata !{i32 4}
+!1 = metadata !{metadata !"main", i32 15}
+!2 = metadata !{metadata !"gl_in", i32 17, [32 x %gl_PerVertex]*
@gl_in_typeProxy, metadata !3, metadata !4}
+!3 = metadata !{i32 0, i32 0, i32 1024, null, i32 0}
+!4 = metadata !{metadata !"gl_PerVertex", metadata !5,
metadata !"gl_Position", metadata !6, metadata !"gl_PointSize", metadata !6}
+!5 = metadata !{i32 0, i32 0, i32 1024, null}
+!6 = metadata !{metadata !"", metadata !7}
+!7 = metadata !{i32 0, i32 3, i32 1024, null}
+!8 = metadata !{metadata !"gl_PatchVerticesIn", i32 1, i32*
@gl_PatchVerticesIn_typeProxy, metadata !9}
+!9 = metadata !{i32 0, i32 3, i32 1088, null, i32 0, i32 34}
+!10 = metadata !{metadata !"gl_PrimitiveID", i32 1, i32*
@gl_PrimitiveID_typeProxy, metadata !11}
+!11 = metadata !{i32 0, i32 3, i32 1089, null, i32 0, i32 31}
+!12 = metadata !{metadata !"gl_InvocationID", i32 1, i32*
@gl_InvocationID_typeProxy, metadata !13}
+!13 = metadata !{i32 0, i32 3, i32 1090, null, i32 0, i32 30}
+!14 = metadata !{metadata !"inb", i32 1, [32 x <2 x float>]*
@inb_typeProxy, metadata !15}
+!15 = metadata !{i32 0, i32 3, i32 1108, null, i32 0}
+!16 = metadata !{metadata !"ind", i32 1, [32 x <2 x float>]*
@ind_typeProxy, metadata !17}
+!17 = metadata !{i32 0, i32 3, i32 1140, null, i32 0}
+!18 = metadata !{metadata !"ivla", i32 1, [32 x <4 x float>]*
@ivla_typeProxy, metadata !19}
+!19 = metadata !{i32 0, i32 3, i32 3, null, i32 0}
+!20 = metadata !{metadata !"ivlb", i32 1, [32 x <4 x float>]*
@ivlb_typeProxy, metadata !21}
+!21 = metadata !{i32 0, i32 3, i32 4, null, i32 0}
+!22 = metadata !{metadata !"centr", i32 1, [32 x <3 x float>]*
@centr_typeProxy, metadata !23}
+!23 = metadata !{i32 0, i32 3, i32 1177, null, i32 512}
+!24 = metadata !{metadata !"gl_out", i32 16, [4 x %gl_PerVertex.0]*
@gl_out_typeProxy, metadata !25, metadata !26}
+!25 = metadata !{i32 0, i32 0, i32 1091, null, i32 0}
+!26 = metadata !{metadata !"gl_PerVertex", metadata !5,
metadata !"gl_Position", metadata !27, metadata !"gl_PointSize",
metadata !29}
+!27 = metadata !{metadata !"", metadata !28}
+!28 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 9}
+!29 = metadata !{metadata !"", metadata !30}
+!30 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 10}
+!31 = metadata !{metadata !"gl_TessLevelOuter", i32 7, [4 x float]*
@gl_TessLevelOuter_typeProxy, metadata !32}
+!32 = metadata !{i32 0, i32 3, i32 1099, null, i32 3, i32 35}
+!33 = metadata !{metadata !"gl_TessLevelInner", i32 7, [2 x float]*
@gl_TessLevelInner_typeProxy, metadata !34}
+!34 = metadata !{i32 0, i32 3, i32 1103, null, i32 3, i32 36}
+!35 = metadata !{metadata !"gl_BoundingBoxOES", i32 7, [2 x <4 x float>]*
@gl_BoundingBoxOES_typeProxy, metadata !36}
+!36 = metadata !{i32 0, i32 3, i32 1105, null, i32 3}
+!37 = metadata !{metadata !"patchOut", i32 7, <4 x float>*
@patchOut_typeProxy, metadata !38}
+!38 = metadata !{i32 0, i32 3, i32 1107, null, i32 3}
+!39 = metadata !{metadata !"ovla", i32 7, [4 x <4 x float>]*
@ovla_typeProxy, metadata !19}
+!40 = metadata !{metadata !"ovlb", i32 7, [4 x <4 x float>]*
@ovlb_typeProxy, metadata !21}
+!41 = metadata !{metadata !"pinbi", i32 16, %pinbn* @pinbi_typeProxy,
metadata !42, metadata !43}
+!42 = metadata !{i32 0, i32 0, i32 1172, null, i32 3}
+!43 = metadata !{metadata !"pinbn", metadata !5, metadata !"a",
metadata !6}
+!44 = metadata !{metadata !"myColor2", i32 7, [4 x <3 x float>]*
@myColor2_typeProxy, metadata !45}
+!45 = metadata !{i32 0, i32 3, i32 1173, null, i32 512}
+!46 = metadata !{metadata !"okaySize", i32 7, [4 x float]*
@okaySize_typeProxy, metadata !47}
+!47 = metadata !{i32 0, i32 3, i32 1209, null, i32 0}
+!48 = metadata !{i32 3}
+
+
+Bottom IR:
+; ModuleID = 'Glslang'
+
+%gl_PerVertex = type { <4 x float>, float }
+%gl_PerVertex.0 = type { <4 x float>, float }
+%pinbn = type { i32 }
+
+@gl_in = global [32 x %gl_PerVertex] zeroinitializer
+@gl_PatchVerticesIn = global i32 0
+@gl_PrimitiveID = global i32 0
+@gl_InvocationID = global i32 0
+@gl_out = global [4 x %gl_PerVertex.0] zeroinitializer
+@gl_TessLevelOuter = global [4 x float] zeroinitializer
+@gl_TessLevelInner = global [2 x float] zeroinitializer
+@gl_BoundingBoxOES = global [2 x <4 x float>] zeroinitializer
+@patchOut = global <4 x float> zeroinitializer
+@inb = global [32 x <2 x float>] zeroinitializer
+@ind = global [32 x <2 x float>] zeroinitializer
+@ivla = global [32 x <4 x float>] zeroinitializer
+@ivlb = global [32 x <4 x float>] zeroinitializer
+@ovla = global [4 x <4 x float>] zeroinitializer
+@ovlb = global [4 x <4 x float>] zeroinitializer
+@pinbi = global %pinbn zeroinitializer
+@myColor2 = global [4 x <3 x float>] zeroinitializer
+@centr = global [32 x <3 x float>] zeroinitializer
+@okaySize = global [4 x float] zeroinitializer
+
+define fastcc void @main() {
+entry:
+ call void @llvm.gla.barrier()
+ %gla_constGEP = getelementptr [32 x %gl_PerVertex]* @gl_in, i32 0, i32
1, i32 0
+ %p1 = load <4 x float>* %gla_constGEP, align 16
+ %gla_constGEP5 = getelementptr [4 x %gl_PerVertex.0]* @gl_out, i32 0,
i32 1, i32 0
+ store <4 x float> %p1, <4 x float>* %gla_constGEP5, align 16
+ %gla_constGEP6 = getelementptr [4 x float]* @gl_TessLevelOuter, i32 0,
i32 3
+ store float 0x40099999A0000000, float* %gla_constGEP6, align 4
+ %gla_constGEP7 = getelementptr [2 x float]* @gl_TessLevelInner, i32 0,
i32 1
+ store float 0x3FF4CCCCC0000000, float* %gla_constGEP7, align 4
+ %gla_constGEP8 = getelementptr [2 x <4 x float>]* @gl_BoundingBoxOES,
i32 0, i32 0
+ store <4 x float> zeroinitializer, <4 x float>* %gla_constGEP8, align 16
+ %gla_constGEP9 = getelementptr [2 x <4 x float>]* @gl_BoundingBoxOES,
i32 0, i32 1
+ store <4 x float> <float 1.000000e+00, float 1.000000e+00, float
1.000000e+00, float 1.000000e+00>, <4 x float>* %gla_constGEP9, align 16
+ %gla_constGEP10 = getelementptr [32 x %gl_PerVertex]* @gl_in, i32 0, i32
1, i32 1
+ %0 = load float* %gla_constGEP10, align 16
+ %gla_constGEP11 = getelementptr [4 x %gl_PerVertex.0]* @gl_out, i32 0,
i32 1, i32 1
+ store float %0, float* %gla_constGEP11, align 16
+ br label %stage-epilogue
+
+stage-epilogue: ; preds = %entry
+ br label %stage-exit
+
+stage-exit: ; preds = %stage-epilogue
+ ret void
+}
+
+; Function Attrs: nounwind
+declare void @llvm.gla.barrier() #0
+
+attributes #0 = { nounwind }
+
+!gla.numVertices = !{!0}
+!gla.entrypoint = !{!1}
+!gla.inputs = !{!2, !8, !10, !12, !14, !16, !18, !20, !22}
+!gla.outputs = !{!24, !31, !33, !35, !37, !39, !40, !41, !44, !46}
+!gla.noStaticUse = !{!37, !14, !16, !18, !20, !39, !40, !41, !44, !22, !46}
+
+!0 = metadata !{i32 4}
+!1 = metadata !{metadata !"main", i32 15}
+!2 = metadata !{metadata !"gl_in", i32 17, [32 x %gl_PerVertex]*
@gl_in_typeProxy, metadata !3, metadata !4}
+!3 = metadata !{i32 0, i32 0, i32 1024, null, i32 0}
+!4 = metadata !{metadata !"gl_PerVertex", metadata !5,
metadata !"gl_Position", metadata !6, metadata !"gl_PointSize", metadata !6}
+!5 = metadata !{i32 0, i32 0, i32 1024, null}
+!6 = metadata !{metadata !"", metadata !7}
+!7 = metadata !{i32 0, i32 3, i32 1024, null}
+!8 = metadata !{metadata !"gl_PatchVerticesIn", i32 1, i32*
@gl_PatchVerticesIn_typeProxy, metadata !9}
+!9 = metadata !{i32 0, i32 3, i32 1088, null, i32 0, i32 34}
+!10 = metadata !{metadata !"gl_PrimitiveID", i32 1, i32*
@gl_PrimitiveID_typeProxy, metadata !11}
+!11 = metadata !{i32 0, i32 3, i32 1089, null, i32 0, i32 31}
+!12 = metadata !{metadata !"gl_InvocationID", i32 1, i32*
@gl_InvocationID_typeProxy, metadata !13}
+!13 = metadata !{i32 0, i32 3, i32 1090, null, i32 0, i32 30}
+!14 = metadata !{metadata !"inb", i32 1, [32 x <2 x float>]*
@inb_typeProxy, metadata !15}
+!15 = metadata !{i32 0, i32 3, i32 1108, null, i32 0}
+!16 = metadata !{metadata !"ind", i32 1, [32 x <2 x float>]*
@ind_typeProxy, metadata !17}
+!17 = metadata !{i32 0, i32 3, i32 1140, null, i32 0}
+!18 = metadata !{metadata !"ivla", i32 1, [32 x <4 x float>]*
@ivla_typeProxy, metadata !19}
+!19 = metadata !{i32 0, i32 3, i32 3, null, i32 0}
+!20 = metadata !{metadata !"ivlb", i32 1, [32 x <4 x float>]*
@ivlb_typeProxy, metadata !21}
+!21 = metadata !{i32 0, i32 3, i32 4, null, i32 0}
+!22 = metadata !{metadata !"centr", i32 1, [32 x <3 x float>]*
@centr_typeProxy, metadata !23}
+!23 = metadata !{i32 0, i32 3, i32 1177, null, i32 512}
+!24 = metadata !{metadata !"gl_out", i32 16, [4 x %gl_PerVertex.0]*
@gl_out_typeProxy, metadata !25, metadata !26}
+!25 = metadata !{i32 0, i32 0, i32 1091, null, i32 0}
+!26 = metadata !{metadata !"gl_PerVertex", metadata !5,
metadata !"gl_Position", metadata !27, metadata !"gl_PointSize",
metadata !29}
+!27 = metadata !{metadata !"", metadata !28}
+!28 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 9}
+!29 = metadata !{metadata !"", metadata !30}
+!30 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 10}
+!31 = metadata !{metadata !"gl_TessLevelOuter", i32 7, [4 x float]*
@gl_TessLevelOuter_typeProxy, metadata !32}
+!32 = metadata !{i32 0, i32 3, i32 1099, null, i32 3, i32 35}
+!33 = metadata !{metadata !"gl_TessLevelInner", i32 7, [2 x float]*
@gl_TessLevelInner_typeProxy, metadata !34}
+!34 = metadata !{i32 0, i32 3, i32 1103, null, i32 3, i32 36}
+!35 = metadata !{metadata !"gl_BoundingBoxOES", i32 7, [2 x <4 x float>]*
@gl_BoundingBoxOES_typeProxy, metadata !36}
+!36 = metadata !{i32 0, i32 3, i32 1105, null, i32 3}
+!37 = metadata !{metadata !"patchOut", i32 7, <4 x float>*
@patchOut_typeProxy, metadata !38}
+!38 = metadata !{i32 0, i32 3, i32 1107, null, i32 3}
+!39 = metadata !{metadata !"ovla", i32 7, [4 x <4 x float>]*
@ovla_typeProxy, metadata !19}
+!40 = metadata !{metadata !"ovlb", i32 7, [4 x <4 x float>]*
@ovlb_typeProxy, metadata !21}
+!41 = metadata !{metadata !"pinbi", i32 16, %pinbn* @pinbi_typeProxy,
metadata !42, metadata !43}
+!42 = metadata !{i32 0, i32 0, i32 1172, null, i32 3}
+!43 = metadata !{metadata !"pinbn", metadata !5, metadata !"a",
metadata !6}
+!44 = metadata !{metadata !"myColor2", i32 7, [4 x <3 x float>]*
@myColor2_typeProxy, metadata !45}
+!45 = metadata !{i32 0, i32 3, i32 1173, null, i32 512}
+!46 = metadata !{metadata !"okaySize", i32 7, [4 x float]*
@okaySize_typeProxy, metadata !47}
+!47 = metadata !{i32 0, i32 3, i32 1209, null, i32 0}
+#version 310 es
+// LunarGOO output
+#extension GL_ANDROID_extension_pack_es31a : enable
+#extension GL_ARB_separate_shader_objects : enable
+#extension GL_EXT_geometry_shader : enable
+#extension GL_EXT_gpu_shader5 : enable
+#extension GL_EXT_primitive_bounding_box : enable
+#extension GL_EXT_shader_io_blocks : enable
+#extension GL_EXT_tessellation_shader : enable
+#extension GL_EXT_texture_buffer : enable
+#extension GL_EXT_texture_cube_map_array : enable
+#extension GL_KHR_blend_equation_advanced : enable
+#extension GL_OES_sample_variables : enable
+#extension GL_OES_shader_image_atomic : enable
+#extension GL_OES_shader_multisample_interpolation : enable
+#extension GL_OES_tessellation_point_size : enable
+#extension GL_OES_texture_storage_multisample_2d_array : enable
+layout(vertices = 4) out;
+in gl_PerVertex {
+ highp vec4 gl_Position;
+ highp float gl_PointSize;
+} gl_in[32];
+in highp vec2 inb[32];
+in highp vec2 ind[32];
+layout(location=3) in highp vec4 ivla[32];
+layout(location=4) in highp vec4 ivlb[32];
+in highp vec3 centr[32];
+out gl_PerVertex {
+ highp vec4 gl_Position;
+ highp float gl_PointSize;
+} gl_out[4];
+patch out highp vec4 patchOut;
+layout(location=3) out highp vec4 ovla[4];
+layout(location=4) out highp vec4 ovlb[4];
+out pinbn {
+ highp int a;
+} pinbi;
+out highp vec3 myColor2[4];
+out highp float okaySize[4];
+const float C_3d2 = 3.2;
+const float C_1d3 = 1.3;
+const vec4 C_vec4p0d0p = vec4(0.0);
+const vec4 C_vec4p1d0p = vec4(1.0);
+
+void main()
+{
+ barrier();
+ gl_out[1].gl_Position = gl_in[1].gl_Position;
+ gl_TessLevelOuter[3] = C_3d2;
+ gl_TessLevelInner[1] = C_1d3;
+ gl_BoundingBoxOES[0] = C_vec4p0d0p;
+ gl_BoundingBoxOES[1] = C_vec4p1d0p;
+ gl_out[1].gl_PointSize = gl_in[1].gl_PointSize;
+
+}
+
+tempglsl.tesc
+Warning, version 310 is not yet complete; most version-specific features
are present, but some are missing.
+WARNING: 0:3: '#extension' : extension is only partially supported:
GL_ANDROID_extension_pack_es31a
+WARNING: 0:3: '#extension' : extension is only partially supported:
GL_KHR_blend_equation_advanced
+WARNING: 0:3: '#extension' : extension is only partially supported:
GL_OES_shader_multisample_interpolation
+ERROR: 0:35: 'out' : type must be an array: pinbi
+ERROR: 1 compilation errors. No code generated.
+
+
=======================================
--- /dev/null
+++ /trunk/test/baseResults/aep.tese.out Mon Aug 17 22:08:33 2015 UTC
@@ -0,0 +1,298 @@
+
+Top IR:
+; ModuleID = 'Glslang'
+
+%gl_PerVertex = type { <4 x float>, float }
+%gl_PerVertex.0 = type { <4 x float>, float }
+%testblb = type { i32 }
+%testbld = type { i32 }
+%pinbn = type { i32 }
+
+@gl_in = global [32 x %gl_PerVertex] zeroinitializer
+@gl_PatchVerticesIn = global i32 0
+@gl_PrimitiveID = global i32 0
+@gl_TessCoord = global <3 x float> zeroinitializer
+@gl_TessLevelOuter = global [4 x float] zeroinitializer
+@gl_TessLevelInner = global [2 x float] zeroinitializer
+@"anon@1" = global %gl_PerVertex.0 zeroinitializer
+@patchIn = global <4 x float> zeroinitializer
+@inb = global [32 x <2 x float>] zeroinitializer
+@ind = global [32 x <2 x float>] zeroinitializer
+@blb = global [32 x %testblb] zeroinitializer
+@bld = global [32 x %testbld] zeroinitializer
+@ivla = global [32 x <4 x float>] zeroinitializer
+@ivlb = global [32 x <4 x float>] zeroinitializer
+@ovla = global [2 x <4 x float>] zeroinitializer
+@pinbi = global %pinbn zeroinitializer
+@myColor2 = global <3 x float> zeroinitializer
+@centr = global [32 x <3 x float>] zeroinitializer
+
+define fastcc void @main() {
+entry:
+ %tli = alloca float
+ %tlo = alloca float
+ %tc = alloca <3 x float>
+ %pid = alloca i32
+ %pvi = alloca i32
+ %p = alloca <4 x float>
+ br label %mainBody
+
+mainBody: ; preds = %entry
+ %p1 = load <4 x float>* getelementptr inbounds ([32 x %gl_PerVertex]*
@gl_in, i32 0, i32 1, i32 0)
+ store <4 x float> %p1, <4 x float>* %p
+ %pvi2 = load i32* @gl_PatchVerticesIn
+ store i32 %pvi2, i32* %pvi
+ %pid3 = load i32* @gl_PrimitiveID
+ store i32 %pid3, i32* %pid
+ %tc4 = load <3 x float>* @gl_TessCoord
+ store <3 x float> %tc4, <3 x float>* %tc
+ %tlo5 = load float* getelementptr inbounds ([4 x float]*
@gl_TessLevelOuter, i32 0, i32 3)
+ store float %tlo5, float* %tlo
+ %tli6 = load float* getelementptr inbounds ([2 x float]*
@gl_TessLevelInner, i32 0, i32 1)
+ store float %tli6, float* %tli
+ %0 = load <4 x float>* %p
+ store <4 x float> %0, <4 x float>* getelementptr inbounds
(%gl_PerVertex.0* @"anon@1", i32 0, i32 0)
+ call void @"pointSize("()
+ br label %stage-epilogue
+
+stage-epilogue: ; preds = %mainBody
+ br label %stage-exit
+
+stage-exit: ; preds = %stage-epilogue
+ ret void
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc void @"pointSize("() #0 {
+entry:
+ %0 = load float* getelementptr inbounds ([32 x %gl_PerVertex]* @gl_in,
i32 0, i32 1, i32 1)
+ store float %0, float* getelementptr inbounds (%gl_PerVertex.0*
@"anon@1", i32 0, i32 1)
+ ret void
+}
+
+attributes #0 = { alwaysinline }
+
+!gla.inputPrimitive = !{!0}
+!gla.vertexSpacing = !{!1}
+!gla.vertexOrder = !{!2}
+!gla.pointMode = !{!3}
+!gla.entrypoint = !{!4}
+!gla.inputs
= !{!5, !11, !13, !15, !17, !19, !21, !23, !25, !27, !30, !33, !35, !37, !40}
+!gla.outputs = !{!42, !49, !50}
+!gla.noStaticUse = !{!21, !23, !25, !27, !30, !33, !35, !49, !37, !50, !40}
+
+!0 = metadata !{i32 8}
+!1 = metadata !{i32 3}
+!2 = metadata !{i32 2}
+!3 = metadata !{i32 1}
+!4 = metadata !{metadata !"main", i32 15}
+!5 = metadata !{metadata !"gl_in", i32 17, [32 x %gl_PerVertex]*
@gl_in_typeProxy, metadata !6, metadata !7}
+!6 = metadata !{i32 0, i32 0, i32 1024, null, i32 0}
+!7 = metadata !{metadata !"gl_PerVertex", metadata !8,
metadata !"gl_Position", metadata !9, metadata !"gl_PointSize", metadata !9}
+!8 = metadata !{i32 0, i32 0, i32 1024, null}
+!9 = metadata !{metadata !"", metadata !10}
+!10 = metadata !{i32 0, i32 3, i32 1024, null}
+!11 = metadata !{metadata !"gl_PatchVerticesIn", i32 1, i32*
@gl_PatchVerticesIn_typeProxy, metadata !12}
+!12 = metadata !{i32 0, i32 3, i32 1088, null, i32 0, i32 34}
+!13 = metadata !{metadata !"gl_PrimitiveID", i32 1, i32*
@gl_PrimitiveID_typeProxy, metadata !14}
+!14 = metadata !{i32 0, i32 3, i32 1089, null, i32 0, i32 31}
+!15 = metadata !{metadata !"gl_TessCoord", i32 1, <3 x float>*
@gl_TessCoord_typeProxy, metadata !16}
+!16 = metadata !{i32 0, i32 3, i32 1090, null, i32 0, i32 37}
+!17 = metadata !{metadata !"gl_TessLevelOuter", i32 1, [4 x float]*
@gl_TessLevelOuter_typeProxy, metadata !18}
+!18 = metadata !{i32 0, i32 3, i32 1091, null, i32 3, i32 35}
+!19 = metadata !{metadata !"gl_TessLevelInner", i32 1, [2 x float]*
@gl_TessLevelInner_typeProxy, metadata !20}
+!20 = metadata !{i32 0, i32 3, i32 1095, null, i32 3, i32 36}
+!21 = metadata !{metadata !"patchIn", i32 1, <4 x float>*
@patchIn_typeProxy, metadata !22}
+!22 = metadata !{i32 0, i32 3, i32 1099, null, i32 3}
+!23 = metadata !{metadata !"inb", i32 1, [32 x <2 x float>]*
@inb_typeProxy, metadata !24}
+!24 = metadata !{i32 0, i32 3, i32 1100, null, i32 0}
+!25 = metadata !{metadata !"ind", i32 1, [32 x <2 x float>]*
@ind_typeProxy, metadata !26}
+!26 = metadata !{i32 0, i32 3, i32 1132, null, i32 0}
+!27 = metadata !{metadata !"blb", i32 17, [32 x %testblb]* @blb_typeProxy,
metadata !28, metadata !29}
+!28 = metadata !{i32 0, i32 0, i32 1164, null, i32 0}
+!29 = metadata !{metadata !"testblb", metadata !8, metadata !"f",
metadata !9}
+!30 = metadata !{metadata !"bld", i32 17, [32 x %testbld]* @bld_typeProxy,
metadata !31, metadata !32}
+!31 = metadata !{i32 0, i32 0, i32 1196, null, i32 0}
+!32 = metadata !{metadata !"testbld", metadata !8, metadata !"f",
metadata !9}
+!33 = metadata !{metadata !"ivla", i32 1, [32 x <4 x float>]*
@ivla_typeProxy, metadata !34}
+!34 = metadata !{i32 0, i32 3, i32 23, null, i32 0}
+!35 = metadata !{metadata !"ivlb", i32 1, [32 x <4 x float>]*
@ivlb_typeProxy, metadata !36}
+!36 = metadata !{i32 0, i32 3, i32 24, null, i32 0}
+!37 = metadata !{metadata !"pinbi", i32 17, %pinbn* @pinbi_typeProxy,
metadata !38, metadata !39}
+!38 = metadata !{i32 0, i32 0, i32 1228, null, i32 3}
+!39 = metadata !{metadata !"pinbn", metadata !8, metadata !"a",
metadata !9}
+!40 = metadata !{metadata !"centr", i32 1, [32 x <3 x float>]*
@centr_typeProxy, metadata !41}
+!41 = metadata !{i32 0, i32 3, i32 1230, null, i32 512}
+!42 = metadata !{metadata !"", i32 16, %gl_PerVertex.0*
@"anon@1_typeProxy", metadata !43, metadata !44}
+!43 = metadata !{i32 0, i32 0, i32 1097, null, i32 0}
+!44 = metadata !{metadata !"gl_PerVertex", metadata !8,
metadata !"gl_Position", metadata !45, metadata !"gl_PointSize",
metadata !47}
+!45 = metadata !{metadata !"", metadata !46}
+!46 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 9}
+!47 = metadata !{metadata !"", metadata !48}
+!48 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 10}
+!49 = metadata !{metadata !"ovla", i32 7, [2 x <4 x float>]*
@ovla_typeProxy, metadata !34}
+!50 = metadata !{metadata !"myColor2", i32 7, <3 x float>*
@myColor2_typeProxy, metadata !51}
+!51 = metadata !{i32 0, i32 3, i32 1229, null, i32 512}
+
+
+Bottom IR:
+; ModuleID = 'Glslang'
+
+%gl_PerVertex = type { <4 x float>, float }
+%gl_PerVertex.0 = type { <4 x float>, float }
+%testblb = type { i32 }
+%testbld = type { i32 }
+%pinbn = type { i32 }
+
+@gl_in = global [32 x %gl_PerVertex] zeroinitializer
+@gl_PatchVerticesIn = global i32 0
+@gl_PrimitiveID = global i32 0
+@gl_TessCoord = global <3 x float> zeroinitializer
+@gl_TessLevelOuter = global [4 x float] zeroinitializer
+@gl_TessLevelInner = global [2 x float] zeroinitializer
+@"anon@1" = global %gl_PerVertex.0 zeroinitializer
+@patchIn = global <4 x float> zeroinitializer
+@inb = global [32 x <2 x float>] zeroinitializer
+@ind = global [32 x <2 x float>] zeroinitializer
+@blb = global [32 x %testblb] zeroinitializer
+@bld = global [32 x %testbld] zeroinitializer
+@ivla = global [32 x <4 x float>] zeroinitializer
+@ivlb = global [32 x <4 x float>] zeroinitializer
+@ovla = global [2 x <4 x float>] zeroinitializer
+@pinbi = global %pinbn zeroinitializer
+@myColor2 = global <3 x float> zeroinitializer
+@centr = global [32 x <3 x float>] zeroinitializer
+
+define fastcc void @main() {
+entry:
+ %gla_constGEP = getelementptr [32 x %gl_PerVertex]* @gl_in, i32 0, i32
1, i32 0
+ %p1 = load <4 x float>* %gla_constGEP, align 16
+ %gla_constGEP7 = getelementptr %gl_PerVertex.0* @"anon@1", i32 0, i32 0
+ store <4 x float> %p1, <4 x float>* %gla_constGEP7, align 16
+ %gla_constGEP8 = getelementptr [32 x %gl_PerVertex]* @gl_in, i32 0, i32
1, i32 1
+ %0 = load float* %gla_constGEP8, align 16
+ %gla_constGEP9 = getelementptr %gl_PerVertex.0* @"anon@1", i32 0, i32 1
+ store float %0, float* %gla_constGEP9, align 16
+ br label %stage-epilogue
+
+stage-epilogue: ; preds = %entry
+ br label %stage-exit
+
+stage-exit: ; preds = %stage-epilogue
+ ret void
+}
+
+!gla.inputPrimitive = !{!0}
+!gla.vertexSpacing = !{!1}
+!gla.vertexOrder = !{!2}
+!gla.pointMode = !{!3}
+!gla.entrypoint = !{!4}
+!gla.inputs
= !{!5, !11, !13, !15, !17, !19, !21, !23, !25, !27, !30, !33, !35, !37, !40}
+!gla.outputs = !{!42, !49, !50}
+!gla.noStaticUse = !{!21, !23, !25, !27, !30, !33, !35, !49, !37, !50, !40}
+
+!0 = metadata !{i32 8}
+!1 = metadata !{i32 3}
+!2 = metadata !{i32 2}
+!3 = metadata !{i32 1}
+!4 = metadata !{metadata !"main", i32 15}
+!5 = metadata !{metadata !"gl_in", i32 17, [32 x %gl_PerVertex]*
@gl_in_typeProxy, metadata !6, metadata !7}
+!6 = metadata !{i32 0, i32 0, i32 1024, null, i32 0}
+!7 = metadata !{metadata !"gl_PerVertex", metadata !8,
metadata !"gl_Position", metadata !9, metadata !"gl_PointSize", metadata !9}
+!8 = metadata !{i32 0, i32 0, i32 1024, null}
+!9 = metadata !{metadata !"", metadata !10}
+!10 = metadata !{i32 0, i32 3, i32 1024, null}
+!11 = metadata !{metadata !"gl_PatchVerticesIn", i32 1, i32*
@gl_PatchVerticesIn_typeProxy, metadata !12}
+!12 = metadata !{i32 0, i32 3, i32 1088, null, i32 0, i32 34}
+!13 = metadata !{metadata !"gl_PrimitiveID", i32 1, i32*
@gl_PrimitiveID_typeProxy, metadata !14}
+!14 = metadata !{i32 0, i32 3, i32 1089, null, i32 0, i32 31}
+!15 = metadata !{metadata !"gl_TessCoord", i32 1, <3 x float>*
@gl_TessCoord_typeProxy, metadata !16}
+!16 = metadata !{i32 0, i32 3, i32 1090, null, i32 0, i32 37}
+!17 = metadata !{metadata !"gl_TessLevelOuter", i32 1, [4 x float]*
@gl_TessLevelOuter_typeProxy, metadata !18}
+!18 = metadata !{i32 0, i32 3, i32 1091, null, i32 3, i32 35}
+!19 = metadata !{metadata !"gl_TessLevelInner", i32 1, [2 x float]*
@gl_TessLevelInner_typeProxy, metadata !20}
+!20 = metadata !{i32 0, i32 3, i32 1095, null, i32 3, i32 36}
+!21 = metadata !{metadata !"patchIn", i32 1, <4 x float>*
@patchIn_typeProxy, metadata !22}
+!22 = metadata !{i32 0, i32 3, i32 1099, null, i32 3}
+!23 = metadata !{metadata !"inb", i32 1, [32 x <2 x float>]*
@inb_typeProxy, metadata !24}
+!24 = metadata !{i32 0, i32 3, i32 1100, null, i32 0}
+!25 = metadata !{metadata !"ind", i32 1, [32 x <2 x float>]*
@ind_typeProxy, metadata !26}
+!26 = metadata !{i32 0, i32 3, i32 1132, null, i32 0}
+!27 = metadata !{metadata !"blb", i32 17, [32 x %testblb]* @blb_typeProxy,
metadata !28, metadata !29}
+!28 = metadata !{i32 0, i32 0, i32 1164, null, i32 0}
+!29 = metadata !{metadata !"testblb", metadata !8, metadata !"f",
metadata !9}
+!30 = metadata !{metadata !"bld", i32 17, [32 x %testbld]* @bld_typeProxy,
metadata !31, metadata !32}
+!31 = metadata !{i32 0, i32 0, i32 1196, null, i32 0}
+!32 = metadata !{metadata !"testbld", metadata !8, metadata !"f",
metadata !9}
+!33 = metadata !{metadata !"ivla", i32 1, [32 x <4 x float>]*
@ivla_typeProxy, metadata !34}
+!34 = metadata !{i32 0, i32 3, i32 23, null, i32 0}
+!35 = metadata !{metadata !"ivlb", i32 1, [32 x <4 x float>]*
@ivlb_typeProxy, metadata !36}
+!36 = metadata !{i32 0, i32 3, i32 24, null, i32 0}
+!37 = metadata !{metadata !"pinbi", i32 17, %pinbn* @pinbi_typeProxy,
metadata !38, metadata !39}
+!38 = metadata !{i32 0, i32 0, i32 1228, null, i32 3}
+!39 = metadata !{metadata !"pinbn", metadata !8, metadata !"a",
metadata !9}
+!40 = metadata !{metadata !"centr", i32 1, [32 x <3 x float>]*
@centr_typeProxy, metadata !41}
+!41 = metadata !{i32 0, i32 3, i32 1230, null, i32 512}
+!42 = metadata !{metadata !"", i32 16, %gl_PerVertex.0*
@"anon@1_typeProxy", metadata !43, metadata !44}
+!43 = metadata !{i32 0, i32 0, i32 1097, null, i32 0}
+!44 = metadata !{metadata !"gl_PerVertex", metadata !8,
metadata !"gl_Position", metadata !45, metadata !"gl_PointSize",
metadata !47}
+!45 = metadata !{metadata !"", metadata !46}
+!46 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 9}
+!47 = metadata !{metadata !"", metadata !48}
+!48 = metadata !{i32 0, i32 3, i32 1024, null, i32 -1, i32 10}
+!49 = metadata !{metadata !"ovla", i32 7, [2 x <4 x float>]*
@ovla_typeProxy, metadata !34}
+!50 = metadata !{metadata !"myColor2", i32 7, <3 x float>*
@myColor2_typeProxy, metadata !51}
+!51 = metadata !{i32 0, i32 3, i32 1229, null, i32 512}
+#version 310 es
+// LunarGOO output
+#extension GL_ANDROID_extension_pack_es31a : enable
+#extension GL_EXT_geometry_shader : enable
+#extension GL_EXT_gpu_shader5 : enable
+#extension GL_EXT_primitive_bounding_box : enable
+#extension GL_EXT_shader_io_blocks : enable
+#extension GL_EXT_tessellation_shader : enable
+#extension GL_EXT_texture_buffer : enable
+#extension GL_EXT_texture_cube_map_array : enable
+#extension GL_KHR_blend_equation_advanced : enable
+#extension GL_OES_sample_variables : enable
+#extension GL_OES_shader_image_atomic : enable
+#extension GL_OES_shader_multisample_interpolation : enable
+#extension GL_OES_tessellation_point_size : enable
+#extension GL_OES_texture_storage_multisample_2d_array : enable
+layout(quads) in;
+layout(fractional_odd_spacing) in;
+layout(point_mode) in;
+patch in highp vec4 patchIn;
+in highp vec2 inb[32];
+in highp vec2 ind[32];
+in testblb {
+ highp int f;
+} blb[32];
+in testbld {
+ highp int f;
+} bld[32];
+layout(location=23) in highp vec4 ivla[32];
+layout(location=24) in highp vec4 ivlb[32];
+in pinbn {
+ highp int a;
+} pinbi;
+in highp vec3 centr[32];
+layout(location=23) out highp vec4 ovla[2];
+out highp vec3 myColor2;
+
+void main()
+{
+ gl_Position = gl_in[1].gl_Position;
+ gl_PointSize = gl_in[1].gl_PointSize;
+
+}
+
+tempglsl.tese
+Warning, version 310 is not yet complete; most version-specific features
are present, but some are missing.
+WARNING: 0:3: '#extension' : extension is only partially supported:
GL_ANDROID_extension_pack_es31a
+WARNING: 0:3: '#extension' : extension is only partially supported:
GL_KHR_blend_equation_advanced
+WARNING: 0:3: '#extension' : extension is only partially supported:
GL_OES_shader_multisample_interpolation
+ERROR: 0:31: 'in' : type must be an array: pinbi
+ERROR: 1 compilation errors. No code generated.
+
+
=======================================
--- /dev/null
+++ /trunk/test/baseResults/aep.vert.out Mon Aug 17 22:08:33 2015 UTC
@@ -0,0 +1,1047 @@
+
+Top IR:
+; ModuleID = 'Glslang'
+
+%outName = type { <4 x float> }
+%ubName = type { <2 x float> }
+
+@iArray = external addrspace(1) constant [5 x i32]
+@index = external addrspace(2) constant i32
+@outInst = global %outName zeroinitializer
+@bufSamp1 = external addrspace(1) constant i32
+@bufSamp2 = external addrspace(1) constant i32
+@bufSamp3 = external addrspace(1) constant i32
+@bufSamp4 = external addrspace(1) constant i32
+@bufSamp5 = external addrspace(1) constant i32
+@bufSamp6 = external addrspace(1) constant i32
+@CA4 = external addrspace(1) constant i32
+@CA5 = external addrspace(1) constant i32
+@CA6 = external addrspace(1) constant i32
+@CA7 = external addrspace(1) constant i32
+@samp2DMSA = external addrspace(1) constant i32
+@samp2DMSAi = external addrspace(1) constant i32
+@samp2DMSAu = external addrspace(1) constant i32
+@sArray = external addrspace(1) constant [4 x i32]
+@ubInst = external addrspace(2) constant [4 x %ubName]
+@inf = global <2 x float> zeroinitializer
+@ing = global <2 x float> zeroinitializer
+@inch = global <2 x float> zeroinitializer
+@CA1 = external addrspace(1) constant i32
+@CA2 = external addrspace(1) constant i32
+@CA3 = external addrspace(1) constant i32
+@im2Df = external addrspace(1) constant i32
+@im2Du = external addrspace(1) constant i32
+@im2Di = external addrspace(1) constant i32
+@P = external addrspace(2) constant <2 x i32>
+@gl_VertexID = global i32 0
+@gl_InstanceID = global i32 0
+
+define fastcc void @main() {
+entry:
+ %constOffsets = alloca [4 x <2 x i32>]
+ %color = alloca <4 x float>
+ br label %mainBody
+
+mainBody: ; preds = %entry
+ %0 = load i32 addrspace(2)* @index, !gla.uniform !4
+ store <4 x float> zeroinitializer, <4 x float>* %color
+ %1 = load <4 x float>* %color
+ store <4 x float> %1, <4 x float>* getelementptr inbounds (%outName*
@outInst, i32 0, i32 0)
+ %2 = call <4 x float> @"bufferT("()
+ %3 = load <4 x float>* getelementptr inbounds (%outName* @outInst, i32
0, i32 0)
+ %4 = fadd <4 x float> %3, %2, !gla.precision !85
+ store <4 x float> %4, <4 x float>* getelementptr inbounds (%outName*
@outInst, i32 0, i32 0)
+ %5 = call <4 x float> @"CAT("()
+ %6 = load <4 x float>* getelementptr inbounds (%outName* @outInst, i32
0, i32 0)
+ %7 = fadd <4 x float> %6, %5, !gla.precision !85
+ store <4 x float> %7, <4 x float>* getelementptr inbounds (%outName*
@outInst, i32 0, i32 0)
+ %8 = call <4 x float> @"MSA("()
+ %9 = load <4 x float>* getelementptr inbounds (%outName* @outInst, i32
0, i32 0)
+ %10 = fadd <4 x float> %9, %8, !gla.precision !85
+ store <4 x float> %10, <4 x float>* getelementptr inbounds (%outName*
@outInst, i32 0, i32 0)
+ call void @"goodImageAtom("()
+ br label %stage-epilogue
+
+stage-epilogue: ; preds = %mainBody
+ br label %stage-exit
+
+stage-exit: ; preds = %stage-epilogue
+ ret void
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc <4 x float> @"bufferT("() #0 {
+entry:
+ %v23 = alloca <4 x float>
+ %v19 = alloca <4 x float>
+ %v15 = alloca <4 x float>
+ %v11 = alloca <4 x float>
+ %v7 = alloca <4 x float>
+ %v3 = alloca <4 x float>
+ %s1 = alloca i32
+ %v = alloca <4 x float>
+ store <4 x float> <float 1.000000e+00, float 1.000000e+00, float
1.000000e+00, float 1.000000e+00>, <4 x float>* %v
+ %0 = load i32 addrspace(1)* @bufSamp1, !gla.uniform !6
+ %s12 = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %0), !gla.precision !85
+ store i32 %s12, i32* %s1
+ %1 = load i32* %s1
+ %2 = sitofp i32 %1 to float, !gla.precision !85
+ %3 = load <4 x float>* %v3
+ %4 = insertelement <4 x float> undef, float %2, i32 0, !gla.precision !85
+ %5 = insertelement <4 x float> %4, float %2, i32 1, !gla.precision !85
+ %6 = insertelement <4 x float> %5, float %2, i32 2, !gla.precision !85
+ %7 = insertelement <4 x float> %6, float %2, i32 3, !gla.precision !85
+ %8 = load <4 x float>* %v
+ %v4 = fmul <4 x float> %8, %7, !gla.precision !85
+ store <4 x float> %v4, <4 x float>* %v
+ %9 = load i32 addrspace(1)* @bufSamp2, !gla.uniform !9
+ %s16 = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %9), !gla.precision !85
+ store i32 %s16, i32* %s1
+ %10 = load i32* %s1
+ %11 = sitofp i32 %10 to float, !gla.precision !85
+ %12 = load <4 x float>* %v7
+ %13 = insertelement <4 x float> undef, float %11, i32
0, !gla.precision !85
+ %14 = insertelement <4 x float> %13, float %11, i32 1, !gla.precision !85
+ %15 = insertelement <4 x float> %14, float %11, i32 2, !gla.precision !85
+ %16 = insertelement <4 x float> %15, float %11, i32 3, !gla.precision !85
+ %17 = load <4 x float>* %v
+ %v8 = fmul <4 x float> %17, %16, !gla.precision !85
+ store <4 x float> %v8, <4 x float>* %v
+ %18 = load i32 addrspace(1)* @bufSamp3, !gla.uniform !12
+ %s110 = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %18), !gla.precision !85
+ store i32 %s110, i32* %s1
+ %19 = load i32* %s1
+ %20 = sitofp i32 %19 to float, !gla.precision !85
+ %21 = load <4 x float>* %v11
+ %22 = insertelement <4 x float> undef, float %20, i32
0, !gla.precision !85
+ %23 = insertelement <4 x float> %22, float %20, i32 1, !gla.precision !85
+ %24 = insertelement <4 x float> %23, float %20, i32 2, !gla.precision !85
+ %25 = insertelement <4 x float> %24, float %20, i32 3, !gla.precision !85
+ %26 = load <4 x float>* %v
+ %v12 = fmul <4 x float> %26, %25, !gla.precision !85
+ store <4 x float> %v12, <4 x float>* %v
+ %27 = load i32 addrspace(1)* @bufSamp4, !gla.uniform !15
+ %s114 = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %27), !gla.precision !85
+ store i32 %s114, i32* %s1
+ %28 = load i32* %s1
+ %29 = sitofp i32 %28 to float, !gla.precision !85
+ %30 = load <4 x float>* %v15
+ %31 = insertelement <4 x float> undef, float %29, i32
0, !gla.precision !85
+ %32 = insertelement <4 x float> %31, float %29, i32 1, !gla.precision !85
+ %33 = insertelement <4 x float> %32, float %29, i32 2, !gla.precision !85
+ %34 = insertelement <4 x float> %33, float %29, i32 3, !gla.precision !85
+ %35 = load <4 x float>* %v
+ %v16 = fmul <4 x float> %35, %34, !gla.precision !85
+ store <4 x float> %v16, <4 x float>* %v
+ %36 = load i32 addrspace(1)* @bufSamp5, !gla.uniform !18
+ %s118 = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %36), !gla.precision !85
+ store i32 %s118, i32* %s1
+ %37 = load i32* %s1
+ %38 = sitofp i32 %37 to float, !gla.precision !85
+ %39 = load <4 x float>* %v19
+ %40 = insertelement <4 x float> undef, float %38, i32
0, !gla.precision !85
+ %41 = insertelement <4 x float> %40, float %38, i32 1, !gla.precision !85
+ %42 = insertelement <4 x float> %41, float %38, i32 2, !gla.precision !85
+ %43 = insertelement <4 x float> %42, float %38, i32 3, !gla.precision !85
+ %44 = load <4 x float>* %v
+ %v20 = fmul <4 x float> %44, %43, !gla.precision !85
+ store <4 x float> %v20, <4 x float>* %v
+ %45 = load i32 addrspace(1)* @bufSamp6, !gla.uniform !21
+ %s122 = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %45), !gla.precision !85
+ store i32 %s122, i32* %s1
+ %46 = load i32* %s1
+ %47 = sitofp i32 %46 to float, !gla.precision !85
+ %48 = load <4 x float>* %v23
+ %49 = insertelement <4 x float> undef, float %47, i32
0, !gla.precision !85
+ %50 = insertelement <4 x float> %49, float %47, i32 1, !gla.precision !85
+ %51 = insertelement <4 x float> %50, float %47, i32 2, !gla.precision !85
+ %52 = insertelement <4 x float> %51, float %47, i32 3, !gla.precision !85
+ %53 = load <4 x float>* %v
+ %v24 = fmul <4 x float> %53, %52, !gla.precision !85
+ store <4 x float> %v24, <4 x float>* %v
+ %54 = load i32 addrspace(1)* @bufSamp1, !gla.uniform !6
+ %55 = load i32* %s1
+ %v25 = call <4 x float>
@llvm.gla.fTexelFetchOffset.v4f32.i32.i32.i32(i32 0, i32 %54, i32 32,
i32 %55, i32 undef, float undef, i32 undef), !gla.precision !85
+ %56 = load <4 x float>* %v
+ %v26 = fmul <4 x float> %56, %v25, !gla.precision !85
+ store <4 x float> %v26, <4 x float>* %v
+ %57 = load i32 addrspace(1)* @bufSamp2, !gla.uniform !9
+ %58 = load i32* %s1
+ %v27 = call <4 x i32> @llvm.gla.texelFetchOffset.v4i32.i32.i32.i32(i32
0, i32 %57, i32 32, i32 %58, i32 undef, float undef, i32
undef), !gla.precision !85
+ %59 = sitofp <4 x i32> %v27 to <4 x float>, !gla.precision !85
+ %60 = load <4 x float>* %v
+ %v28 = fmul <4 x float> %60, %59, !gla.precision !85
+ store <4 x float> %v28, <4 x float>* %v
+ %61 = load i32 addrspace(1)* @bufSamp3, !gla.uniform !12
+ %62 = load i32* %s1
+ %v29 = call <4 x i32> @llvm.gla.texelFetchOffset.v4i32.i32.i32.i32(i32
0, i32 %61, i32 32, i32 %62, i32 undef, float undef, i32
undef), !gla.precision !85
+ %63 = uitofp <4 x i32> %v29 to <4 x float>, !gla.precision !85
+ %64 = load <4 x float>* %v
+ %v30 = fmul <4 x float> %64, %63, !gla.precision !85
+ store <4 x float> %v30, <4 x float>* %v
+ %65 = load <4 x float>* %v
+ ret <4 x float> %65
+
+post-return: ; No predecessors!
+ unreachable
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc <4 x float> @"CAT("() #0 {
+entry:
+ %v9 = alloca <4 x float>
+ %v = alloca <4 x float>
+ %iv = alloca <3 x i32>
+ store <3 x i32> zeroinitializer, <3 x i32>* %iv
+ %0 = load i32 addrspace(1)* @CA4, !gla.uniform !24
+ %iv1 = call <3 x i32> @llvm.gla.queryTextureSize.v3i32(i32 4, i32 %0,
i32 1), !gla.precision !85
+ %1 = load <3 x i32>* %iv
+ %iv2 = add <3 x i32> %1, %iv1, !gla.precision !85
+ store <3 x i32> %iv2, <3 x i32>* %iv
+ %2 = load i32 addrspace(1)* @CA5, !gla.uniform !27
+ %iv3 = call <3 x i32> @llvm.gla.queryTextureSize.v3i32(i32 4, i32 %2,
i32 1), !gla.precision !85
+ %3 = load <3 x i32>* %iv
+ %iv4 = add <3 x i32> %3, %iv3, !gla.precision !85
+ store <3 x i32> %iv4, <3 x i32>* %iv
+ %4 = load i32 addrspace(1)* @CA6, !gla.uniform !30
+ %iv5 = call <3 x i32> @llvm.gla.queryTextureSize.v3i32(i32 4, i32 %4,
i32 1), !gla.precision !85
+ %5 = load <3 x i32>* %iv
+ %iv6 = add <3 x i32> %5, %iv5, !gla.precision !85
+ store <3 x i32> %iv6, <3 x i32>* %iv
+ %6 = load i32 addrspace(1)* @CA7, !gla.uniform !33
+ %iv7 = call <3 x i32> @llvm.gla.queryTextureSize.v3i32(i32 4, i32 %6,
i32 1), !gla.precision !85
+ %7 = load <3 x i32>* %iv
+ %iv8 = add <3 x i32> %7, %iv7, !gla.precision !85
+ store <3 x i32> %iv8, <3 x i32>* %iv
+ %8 = load <3 x i32>* %iv
+ %9 = sitofp <3 x i32> %8 to <3 x float>, !gla.precision !85
+ %10 = load <4 x float>* %v9
+ %11 = extractelement <3 x float> %9, i32 0, !gla.precision !85
+ %12 = insertelement <4 x float> %10, float %11, i32 0, !gla.precision !85
+ %13 = extractelement <3 x float> %9, i32 1, !gla.precision !85
+ %14 = insertelement <4 x float> %12, float %13, i32 1, !gla.precision !85
+ %15 = extractelement <3 x float> %9, i32 2, !gla.precision !85
+ %16 = insertelement <4 x float> %14, float %15, i32 2, !gla.precision !85
+ %v10 = insertelement <4 x float> %16, float 1.000000e+00, i32
3, !gla.precision !85
+ store <4 x float> %v10, <4 x float>* %v
+ %17 = load i32 addrspace(1)* @CA4, !gla.uniform !24
+ %v11 = call <4 x float> @llvm.gla.fTextureSample.v4f32.v4f32(i32 4,
i32 %17, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>), !gla.precision !85
+ %18 = load <4 x float>* %v
+ %v12 = fmul <4 x float> %18, %v11, !gla.precision !85
+ store <4 x float> %v12, <4 x float>* %v
+ %19 = load i32 addrspace(1)* @CA5, !gla.uniform !27
+ %v13 = call float @llvm.gla.fTextureSampleLodRefZ.f32.v4f32(i32 4,
i32 %19, i32 154, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, float 3.000000e+00, float
undef), !gla.precision !85
+ %20 = load <4 x float>* %v
+ %21 = insertelement <4 x float> undef, float %v13, i32
0, !gla.precision !85
+ %22 = insertelement <4 x float> %21, float %v13, i32
1, !gla.precision !85
+ %23 = insertelement <4 x float> %22, float %v13, i32
2, !gla.precision !85
+ %24 = insertelement <4 x float> %23, float %v13, i32
3, !gla.precision !85
+ %v14 = fmul <4 x float> %20, %24, !gla.precision !85
+ store <4 x float> %v14, <4 x float>* %v
+ %25 = load i32 addrspace(1)* @CA6, !gla.uniform !30
+ %v15 = call <4 x i32> @llvm.gla.textureSample.v4i32.v4f32(i32 4,
i32 %25, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>), !gla.precision !85
+ %26 = sitofp <4 x i32> %v15 to <4 x float>, !gla.precision !85
+ %27 = load <4 x float>* %v
+ %v16 = fmul <4 x float> %27, %26, !gla.precision !85
+ store <4 x float> %v16, <4 x float>* %v
+ %28 = load i32 addrspace(1)* @CA7, !gla.uniform !33
+ %v17 = call <4 x i32> @llvm.gla.textureSample.v4i32.v4f32(i32 4,
i32 %28, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>), !gla.precision !85
+ %29 = uitofp <4 x i32> %v17 to <4 x float>, !gla.precision !85
+ %30 = load <4 x float>* %v
+ %v18 = fmul <4 x float> %30, %29, !gla.precision !85
+ store <4 x float> %v18, <4 x float>* %v
+ %31 = load i32 addrspace(1)* @CA4, !gla.uniform !24
+ %v19 = call <4 x float> @llvm.gla.fTextureSampleLodRefZ.v4f32.v4f32(i32
4, i32 %31, i32 148, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, float 0x3FCEB851E0000000, float
undef), !gla.precision !85
+ %32 = load <4 x float>* %v
+ %v20 = fmul <4 x float> %32, %v19, !gla.precision !85
+ store <4 x float> %v20, <4 x float>* %v
+ %33 = load i32 addrspace(1)* @CA6, !gla.uniform !30
+ %v21 = call <4 x i32> @llvm.gla.textureSampleLodRefZ.v4i32.v4f32(i32 4,
i32 %33, i32 148, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, float 0x3FD0A3D700000000, float
undef), !gla.precision !85
+ %34 = sitofp <4 x i32> %v21 to <4 x float>, !gla.precision !85
+ %35 = load <4 x float>* %v
+ %v22 = fmul <4 x float> %35, %34, !gla.precision !85
+ store <4 x float> %v22, <4 x float>* %v
+ %36 = load i32 addrspace(1)* @CA7, !gla.uniform !33
+ %v23 = call <4 x i32> @llvm.gla.textureSampleLodRefZ.v4i32.v4f32(i32 4,
i32 %36, i32 148, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, float 0x3FD147AE20000000, float
undef), !gla.precision !85
+ %37 = uitofp <4 x i32> %v23 to <4 x float>, !gla.precision !85
+ %38 = load <4 x float>* %v
+ %v24 = fmul <4 x float> %38, %37, !gla.precision !85
+ store <4 x float> %v24, <4 x float>* %v
+ %39 = load i32 addrspace(1)* @CA4, !gla.uniform !24
+ %v25 = call <4 x float>
@llvm.gla.fTextureSampleLodRefZOffsetGrad.v4f32.v4f32.i32.v3f32.v3f32(i32
4, i32 %39, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, float undef, float undef, i32
undef, <3 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000,
float 0x3FB99999A0000000>, <3 x float> <float 0x3FC99999A0000000, float
0x3FC99999A0000000, float 0x3FC99999A0000000>), !gla.precision !85
+ %40 = load <4 x float>* %v
+ %v26 = fmul <4 x float> %40, %v25, !gla.precision !85
+ store <4 x float> %v26, <4 x float>* %v
+ %41 = load i32 addrspace(1)* @CA6, !gla.uniform !30
+ %v27 = call <4 x i32>
@llvm.gla.textureSampleLodRefZOffsetGrad.v4i32.v4f32.i32.v3f32.v3f32(i32 4,
i32 %41, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, float undef, float undef, i32 undef, <3
x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float
0x3FB99999A0000000>, <3 x float> <float 0x3FC99999A0000000, float
0x3FC99999A0000000, float 0x3FC99999A0000000>), !gla.precision !85
+ %42 = sitofp <4 x i32> %v27 to <4 x float>, !gla.precision !85
+ %43 = load <4 x float>* %v
+ %v28 = fmul <4 x float> %43, %42, !gla.precision !85
+ store <4 x float> %v28, <4 x float>* %v
+ %44 = load i32 addrspace(1)* @CA7, !gla.uniform !33
+ %v29 = call <4 x i32>
@llvm.gla.textureSampleLodRefZOffsetGrad.v4i32.v4f32.i32.v3f32.v3f32(i32 4,
i32 %44, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, float undef, float undef, i32 undef, <3
x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float
0x3FB99999A0000000>, <3 x float> <float 0x3FC99999A0000000, float
0x3FC99999A0000000, float 0x3FC99999A0000000>), !gla.precision !85
+ %45 = uitofp <4 x i32> %v29 to <4 x float>, !gla.precision !85
+ %46 = load <4 x float>* %v
+ %v30 = fmul <4 x float> %46, %45, !gla.precision !85
+ store <4 x float> %v30, <4 x float>* %v
+ %47 = load i32 addrspace(1)* @CA4, !gla.uniform !24
+ %v31 = call <4 x float> @llvm.gla.fTexelGather.v4f32.v4f32(i32 4,
i32 %47, i32 80, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, i32 undef, float
undef), !gla.precision !85
+ %48 = load <4 x float>* %v
+ %v32 = fmul <4 x float> %48, %v31, !gla.precision !85
+ store <4 x float> %v32, <4 x float>* %v
+ %49 = load i32 addrspace(1)* @CA4, !gla.uniform !24
+ %v33 = call <4 x float> @llvm.gla.fTexelGather.v4f32.v4f32(i32 4,
i32 %49, i32 1104, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, i32 2, float
undef), !gla.precision !85
+ %50 = load <4 x float>* %v
+ %v34 = fmul <4 x float> %50, %v33, !gla.precision !85
+ store <4 x float> %v34, <4 x float>* %v
+ %51 = load i32 addrspace(1)* @CA6, !gla.uniform !30
+ %v35 = call <4 x i32> @llvm.gla.texelGather.v4i32.v4f32(i32 4, i32 %51,
i32 80, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, i32 undef, float
undef), !gla.precision !85
+ %52 = sitofp <4 x i32> %v35 to <4 x float>, !gla.precision !85
+ %53 = load <4 x float>* %v
+ %v36 = fmul <4 x float> %53, %52, !gla.precision !85
+ store <4 x float> %v36, <4 x float>* %v
+ %54 = load i32 addrspace(1)* @CA6, !gla.uniform !30
+ %v37 = call <4 x i32> @llvm.gla.texelGather.v4i32.v4f32(i32 4, i32 %54,
i32 1104, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, i32 1, float undef), !gla.precision !85
+ %55 = sitofp <4 x i32> %v37 to <4 x float>, !gla.precision !85
+ %56 = load <4 x float>* %v
+ %v38 = fmul <4 x float> %56, %55, !gla.precision !85
+ store <4 x float> %v38, <4 x float>* %v
+ %57 = load i32 addrspace(1)* @CA7, !gla.uniform !33
+ %v39 = call <4 x i32> @llvm.gla.texelGather.v4i32.v4f32(i32 4, i32 %57,
i32 80, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, i32 undef, float
undef), !gla.precision !85
+ %58 = uitofp <4 x i32> %v39 to <4 x float>, !gla.precision !85
+ %59 = load <4 x float>* %v
+ %v40 = fmul <4 x float> %59, %58, !gla.precision !85
+ store <4 x float> %v40, <4 x float>* %v
+ %60 = load i32 addrspace(1)* @CA7, !gla.uniform !33
+ %v41 = call <4 x i32> @llvm.gla.texelGather.v4i32.v4f32(i32 4, i32 %60,
i32 1104, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, i32 0, float undef), !gla.precision !85
+ %61 = uitofp <4 x i32> %v41 to <4 x float>, !gla.precision !85
+ %62 = load <4 x float>* %v
+ %v42 = fmul <4 x float> %62, %61, !gla.precision !85
+ store <4 x float> %v42, <4 x float>* %v
+ %63 = load i32 addrspace(1)* @CA5, !gla.uniform !27
+ %v43 = call <4 x float> @llvm.gla.fTexelGather.v4f32.v4f32(i32 4,
i32 %63, i32 2136, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, i32 undef, float
2.500000e+00), !gla.precision !85
+ %64 = load <4 x float>* %v
+ %v44 = fmul <4 x float> %64, %v43, !gla.precision !85
+ store <4 x float> %v44, <4 x float>* %v
+ %65 = load <4 x float>* %v
+ ret <4 x float> %65
+
+post-return: ; No predecessors!
+ unreachable
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc <4 x float> @"MSA("() #0 {
+entry:
+ %v7 = alloca <4 x float>
+ %v = alloca <4 x float>
+ %iv = alloca <3 x i32>
+ store <3 x i32> zeroinitializer, <3 x i32>* %iv
+ %0 = load i32 addrspace(1)* @samp2DMSA, !gla.uniform !36
+ %iv1 = call <3 x i32> @llvm.gla.queryTextureSizeNoLod.v3i32(i32 6,
i32 %0), !gla.precision !85
+ %1 = load <3 x i32>* %iv
+ %iv2 = add <3 x i32> %1, %iv1, !gla.precision !85
+ store <3 x i32> %iv2, <3 x i32>* %iv
+ %2 = load i32 addrspace(1)* @samp2DMSAi, !gla.uniform !39
+ %iv3 = call <3 x i32> @llvm.gla.queryTextureSizeNoLod.v3i32(i32 6,
i32 %2), !gla.precision !85
+ %3 = load <3 x i32>* %iv
+ %iv4 = add <3 x i32> %3, %iv3, !gla.precision !85
+ store <3 x i32> %iv4, <3 x i32>* %iv
+ %4 = load i32 addrspace(1)* @samp2DMSAu, !gla.uniform !42
+ %iv5 = call <3 x i32> @llvm.gla.queryTextureSizeNoLod.v3i32(i32 6,
i32 %4), !gla.precision !85
+ %5 = load <3 x i32>* %iv
+ %iv6 = add <3 x i32> %5, %iv5, !gla.precision !85
+ store <3 x i32> %iv6, <3 x i32>* %iv
+ %6 = load <3 x i32>* %iv
+ %7 = sitofp <3 x i32> %6 to <3 x float>, !gla.precision !85
+ %8 = load <4 x float>* %v7
+ %9 = extractelement <3 x float> %7, i32 0, !gla.precision !85
+ %10 = insertelement <4 x float> %8, float %9, i32 0, !gla.precision !85
+ %11 = extractelement <3 x float> %7, i32 1, !gla.precision !85
+ %12 = insertelement <4 x float> %10, float %11, i32 1, !gla.precision !85
+ %13 = extractelement <3 x float> %7, i32 2, !gla.precision !85
+ %14 = insertelement <4 x float> %12, float %13, i32 2, !gla.precision !85
+ %v8 = insertelement <4 x float> %14, float 1.000000e+00, i32
3, !gla.precision !85
+ store <4 x float> %v8, <4 x float>* %v
+ %15 = load i32 addrspace(1)* @samp2DMSA, !gla.uniform !36
+ %v9 = call <4 x float>
@llvm.gla.fTexelFetchOffset.v4f32.v3i32.i32.i32(i32 6, i32 %15, i32 690, <3
x i32> <i32 5, i32 5, i32 5>, i32 2, float undef, i32
undef), !gla.precision !85
+ %16 = load <4 x float>* %v
+ %v10 = fmul <4 x float> %16, %v9, !gla.precision !85
+ store <4 x float> %v10, <4 x float>* %v
+ %17 = load i32 addrspace(1)* @samp2DMSAi, !gla.uniform !39
+ %v11 = call <4 x i32> @llvm.gla.texelFetchOffset.v4i32.v3i32.i32.i32(i32
6, i32 %17, i32 690, <3 x i32> <i32 5, i32 5, i32 5>, i32 2, float undef,
i32 undef), !gla.precision !85
+ %18 = sitofp <4 x i32> %v11 to <4 x float>, !gla.precision !85
+ %19 = load <4 x float>* %v
+ %v12 = fmul <4 x float> %19, %18, !gla.precision !85
+ store <4 x float> %v12, <4 x float>* %v
+ %20 = load i32 addrspace(1)* @samp2DMSAu, !gla.uniform !42
+ %v13 = call <4 x i32> @llvm.gla.texelFetchOffset.v4i32.v3i32.i32.i32(i32
6, i32 %20, i32 690, <3 x i32> <i32 5, i32 5, i32 5>, i32 2, float undef,
i32 undef), !gla.precision !85
+ %21 = uitofp <4 x i32> %v13 to <4 x float>, !gla.precision !85
+ %22 = load <4 x float>* %v
+ %v14 = fmul <4 x float> %22, %21, !gla.precision !85
+ store <4 x float> %v14, <4 x float>* %v
+ %23 = load <4 x float>* %v
+ ret <4 x float> %23
+
+post-return: ; No predecessors!
+ unreachable
+}
+
+; Function Attrs: alwaysinline
+define internal fastcc void @"goodImageAtom("() #0 {
+entry:
+ ret void
+}
+
+; Function Attrs: nounwind readnone
+declare i32 @llvm.gla.queryTextureSizeNoLod.i32(i32, i32) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fTexelFetchOffset.v4f32.i32.i32.i32(i32,
i32, i32, i32, i32, float, i32) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x i32> @llvm.gla.texelFetchOffset.v4i32.i32.i32.i32(i32, i32,
i32, i32, i32, float, i32) #1
+
+; Function Attrs: nounwind readnone
+declare <3 x i32> @llvm.gla.queryTextureSize.v3i32(i32, i32, i32) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fTextureSample.v4f32.v4f32(i32, i32, i32, <4
x float>) #1
+
+; Function Attrs: nounwind readnone
+declare float @llvm.gla.fTextureSampleLodRefZ.f32.v4f32(i32, i32, i32, <4
x float>, float, float) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x i32> @llvm.gla.textureSample.v4i32.v4f32(i32, i32, i32, <4 x
float>) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fTextureSampleLodRefZ.v4f32.v4f32(i32, i32,
i32, <4 x float>, float, float) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x i32> @llvm.gla.textureSampleLodRefZ.v4i32.v4f32(i32, i32,
i32, <4 x float>, float, float) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x float>
@llvm.gla.fTextureSampleLodRefZOffsetGrad.v4f32.v4f32.i32.v3f32.v3f32(i32,
i32, i32, <4 x float>, float, float, i32, <3 x float>, <3 x float>) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x i32>
@llvm.gla.textureSampleLodRefZOffsetGrad.v4i32.v4f32.i32.v3f32.v3f32(i32,
i32, i32, <4 x float>, float, float, i32, <3 x float>, <3 x float>) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fTexelGather.v4f32.v4f32(i32, i32, i32, <4 x
float>, i32, float) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x i32> @llvm.gla.texelGather.v4i32.v4f32(i32, i32, i32, <4 x
float>, i32, float) #1
+
+; Function Attrs: nounwind readnone
+declare <3 x i32> @llvm.gla.queryTextureSizeNoLod.v3i32(i32, i32) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fTexelFetchOffset.v4f32.v3i32.i32.i32(i32,
i32, i32, <3 x i32>, i32, float, i32) #1
+
+; Function Attrs: nounwind readnone
+declare <4 x i32> @llvm.gla.texelFetchOffset.v4i32.v3i32.i32.i32(i32, i32,
i32, <3 x i32>, i32, float, i32) #1
+
+attributes #0 = { alwaysinline }
+attributes #1 = { nounwind readnone }
+
+!gla.entrypoint = !{!0}
+!gla.uniforms
= !{!1, !4, !6, !9, !12, !15, !18, !21, !24, !27, !30, !33, !36, !39, !42, !45, !48, !52, !55, !58, !61, !64, !67, !70}
+!gla.outputs = !{!71}
+!gla.noStaticUse
= !{!45, !48, !75, !77, !79, !52, !55, !58, !61, !64, !67, !70, !81, !83}
+!gla.inputs = !{!75, !77, !79, !81, !83}
+
+!0 = metadata !{metadata !"main", i32 15}
+!1 = metadata !{metadata !"iArray", i32 12, [5 x i32]* @iArray_typeProxy,
metadata !2}
+!2 = metadata !{i32 5, i32 1, i32 1024, metadata !3}
+!3 = metadata !{i32 1, [5 x i32]* @iArray_typeProxy, i32 1, i1 false, i1
false, i32 0}
+!4 = metadata !{metadata !"index", i32 12, i32* @index_typeProxy,
metadata !5}
+!5 = metadata !{i32 0, i32 3, i32 1024, null}
+!6 = metadata !{metadata !"bufSamp1", i32 12, i32* @bufSamp1_typeProxy,
metadata !7}
+!7 = metadata !{i32 5, i32 3, i32 1024, metadata !8}
+!8 = metadata !{i32 0, i32* @bufSamp1_typeProxy, i32 5, i1 false, i1
false, i32 0}
+!9 = metadata !{metadata !"bufSamp2", i32 12, i32* @bufSamp2_typeProxy,
metadata !10}
+!10 = metadata !{i32 5, i32 3, i32 1024, metadata !11}
+!11 = metadata !{i32 0, i32* @bufSamp2_typeProxy, i32 5, i1 false, i1
false, i32 1}
+!12 = metadata !{metadata !"bufSamp3", i32 12, i32* @bufSamp3_typeProxy,
metadata !13}
+!13 = metadata !{i32 5, i32 3, i32 1024, metadata !14}
+!14 = metadata !{i32 0, i32* @bufSamp3_typeProxy, i32 5, i1 false, i1
false, i32 2}
+!15 = metadata !{metadata !"bufSamp4", i32 12, i32* @bufSamp4_typeProxy,
metadata !16}
+!16 = metadata !{i32 5, i32 3, i32 1024, metadata !17}
+!17 = metadata !{i32 1, i32* @bufSamp4_typeProxy, i32 5, i1 false, i1
false, i32 0}
+!18 = metadata !{metadata !"bufSamp5", i32 12, i32* @bufSamp5_typeProxy,
metadata !19}
+!19 = metadata !{i32 5, i32 3, i32 1024, metadata !20}
+!20 = metadata !{i32 1, i32* @bufSamp5_typeProxy, i32 5, i1 false, i1
false, i32 1}
+!21 = metadata !{metadata !"bufSamp6", i32 12, i32* @bufSamp6_typeProxy,
metadata !22}
+!22 = metadata !{i32 5, i32 3, i32 1024, metadata !23}
+!23 = metadata !{i32 1, i32* @bufSamp6_typeProxy, i32 5, i1 false, i1
false, i32 2}
+!24 = metadata !{metadata !"CA4", i32 12, i32* @CA4_typeProxy,
metadata !25}
+!25 = metadata !{i32 5, i32 3, i32 1024, metadata !26}
+!26 = metadata !{i32 0, i32* @CA4_typeProxy, i32 3, i1 true, i1 false, i32
0}
+!27 = metadata !{metadata !"CA5", i32 12, i32* @CA5_typeProxy,
metadata !28}
+!28 = metadata !{i32 5, i32 3, i32 1024, metadata !29}
+!29 = metadata !{i32 0, i32* @CA5_typeProxy, i32 3, i1 true, i1 true, i32
0}
+!30 = metadata !{metadata !"CA6", i32 12, i32* @CA6_typeProxy,
metadata !31}
+!31 = metadata !{i32 5, i32 3, i32 1024, metadata !32}
+!32 = metadata !{i32 0, i32* @CA6_typeProxy, i32 3, i1 true, i1 false, i32
1}
+!33 = metadata !{metadata !"CA7", i32 12, i32* @CA7_typeProxy,
metadata !34}
+!34 = metadata !{i32 5, i32 3, i32 1024, metadata !35}
+!35 = metadata !{i32 0, i32* @CA7_typeProxy, i32 3, i1 true, i1 false, i32
2}
+!36 = metadata !{metadata !"samp2DMSA", i32 12, i32* @samp2DMSA_typeProxy,
metadata !37}
+!37 = metadata !{i32 5, i32 3, i32 1024, metadata !38}
+!38 = metadata !{i32 0, i32* @samp2DMSA_typeProxy, i32 1, i1 true, i1
false, i32 0}
+!39 = metadata !{metadata !"samp2DMSAi", i32 12, i32*
@samp2DMSAi_typeProxy, metadata !40}
+!40 = metadata !{i32 5, i32 3, i32 1024, metadata !41}
+!41 = metadata !{i32 0, i32* @samp2DMSAi_typeProxy, i32 1, i1 true, i1
false, i32 1}
+!42 = metadata !{metadata !"samp2DMSAu", i32 12, i32*
@samp2DMSAu_typeProxy, metadata !43}
+!43 = metadata !{i32 5, i32 3, i32 1024, metadata !44}
+!44 = metadata !{i32 0, i32* @samp2DMSAu_typeProxy, i32 1, i1 true, i1
false, i32 2}
+!45 = metadata !{metadata !"sArray", i32 12, [4 x i32]* @sArray_typeProxy,
metadata !46}
+!46 = metadata !{i32 5, i32 1, i32 1024, metadata !47}
+!47 = metadata !{i32 0, [4 x i32]* @sArray_typeProxy, i32 1, i1 false, i1
false, i32 0}
+!48 = metadata !{metadata !"ubInst", i32 13, [4 x %ubName]*
@ubInst_typeProxy, metadata !49, metadata !50}
+!49 = metadata !{i32 6, i32 0, i32 1024, null}
+!50 = metadata !{metadata !"ubName", metadata !49, metadata !"p",
metadata !51}
+!51 = metadata !{metadata !"", metadata !5}
+!52 = metadata !{metadata !"CA1", i32 12, i32* @CA1_typeProxy,
metadata !53}
+!53 = metadata !{i32 5, i32 3, i32 1024, metadata !54}
+!54 = metadata !{i32 1, i32* @CA1_typeProxy, i32 3, i1 true, i1 false, i32
0}
+!55 = metadata !{metadata !"CA2", i32 12, i32* @CA2_typeProxy,
metadata !56}
+!56 = metadata !{i32 5, i32 3, i32 1024, metadata !57}
+!57 = metadata !{i32 1, i32* @CA2_typeProxy, i32 3, i1 true, i1 false, i32
1}
+!58 = metadata !{metadata !"CA3", i32 12, i32* @CA3_typeProxy,
metadata !59}
+!59 = metadata !{i32 5, i32 3, i32 1024, metadata !60}
+!60 = metadata !{i32 1, i32* @CA3_typeProxy, i32 3, i1 true, i1 false, i32
2}
+!61 = metadata !{metadata !"im2Df", i32 12, i32* @im2Df_typeProxy,
metadata !62}
+!62 = metadata !{i32 5, i32 3, i32 1024, metadata !63}
+!63 = metadata !{i32 4, i32* @im2Df_typeProxy, i32 1, i1 false, i1 false,
i32 0}
+!64 = metadata !{metadata !"im2Du", i32 12, i32* @im2Du_typeProxy,
metadata !65}
+!65 = metadata !{i32 5, i32 3, i32 1024, metadata !66}
+!66 = metadata !{i32 34, i32* @im2Du_typeProxy, i32 1, i1 false, i1 false,
i32 2}
+!67 = metadata !{metadata !"im2Di", i32 12, i32* @im2Di_typeProxy,
metadata !68}
+!68 = metadata !{i32 5, i32 3, i32 1024, metadata !69}
+!69 = metadata !{i32 25, i32* @im2Di_typeProxy, i32 1, i1 false, i1 false,
i32 1}
+!70 = metadata !{metadata !"P", i32 12, <2 x i32>* @P_typeProxy,
metadata !5}
+!71 = metadata !{metadata !"outInst", i32 16, %outName*
@outInst_typeProxy, metadata !72, metadata !73}
+!72 = metadata !{i32 0, i32 0, i32 1024, null, i32 0}
+!73 = metadata !{metadata !"outName", metadata !74, metadata !"color",
metadata !51}
+!74 = metadata !{i32 0, i32 0, i32 1024, null}
+!75 = metadata !{metadata !"inf", i32 1, <2 x float>* @inf_typeProxy,
metadata !76}
+!76 = metadata !{i32 0, i32 3, i32 1025, null, i32 0}
+!77 = metadata !{metadata !"ing", i32 1, <2 x float>* @ing_typeProxy,
metadata !78}
+!78 = metadata !{i32 0, i32 3, i32 1026, null, i32 0}
+!79 = metadata !{metadata !"inch", i32 1, <2 x float>* @inch_typeProxy,
metadata !80}
+!80 = metadata !{i32 0, i32 3, i32 1027, null, i32 0}
+!81 = metadata !{metadata !"gl_VertexID", i32 2, i32*
@gl_VertexID_typeProxy, metadata !82}
+!82 = metadata !{i32 0, i32 3, i32 1028, null, i32 0, i32 7}
+!83 = metadata !{metadata !"gl_InstanceID", i32 3, i32*
@gl_InstanceID_typeProxy, metadata !84}
+!84 = metadata !{i32 0, i32 3, i32 1029, null, i32 0, i32 8}
+!85 = metadata !{i32 3}
+
+
+Bottom IR:
+; ModuleID = 'Glslang'
+
+%outName = type { <4 x float> }
+
+@outInst = global %outName zeroinitializer
+@bufSamp1 = external addrspace(1) constant i32
+@bufSamp2 = external addrspace(1) constant i32
+@bufSamp3 = external addrspace(1) constant i32
+@bufSamp4 = external addrspace(1) constant i32
+@bufSamp5 = external addrspace(1) constant i32
+@bufSamp6 = external addrspace(1) constant i32
+@CA4 = external addrspace(1) constant i32
+@CA5 = external addrspace(1) constant i32
+@CA6 = external addrspace(1) constant i32
+@CA7 = external addrspace(1) constant i32
+@samp2DMSA = external addrspace(1) constant i32
+@samp2DMSAi = external addrspace(1) constant i32
+@samp2DMSAu = external addrspace(1) constant i32
+@inf = global <2 x float> zeroinitializer
+@ing = global <2 x float> zeroinitializer
+@inch = global <2 x float> zeroinitializer
+@gl_VertexID = global i32 0
+@gl_InstanceID = global i32 0
+
+define fastcc void @main() {
+entry:
+ %gla_constGEP = getelementptr %outName* @outInst, i32 0, i32 0
+ store <4 x float> zeroinitializer, <4 x float>* %gla_constGEP, align 16
+ %0 = load i32 addrspace(1)* @bufSamp1, align 4, !gla.uniform !6
+ %s12.i = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %0), !gla.precision !85
+ %1 = sitofp i32 %s12.i to float, !gla.precision !85
+ %2 = call <4 x float> @llvm.gla.fSwizzle.v4f32.f32.v4i32(float %1, <4 x
i32> zeroinitializer)
+ %3 = load i32 addrspace(1)* @bufSamp2, align 4, !gla.uniform !9
+ %s16.i = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %3), !gla.precision !85
+ %4 = sitofp i32 %s16.i to float, !gla.precision !85
+ %5 = call <4 x float> @llvm.gla.fSwizzle.v4f32.f32.v4i32(float %4, <4 x
i32> zeroinitializer)
+ %v8.i = fmul <4 x float> %2, %5, !gla.precision !85
+ %6 = load i32 addrspace(1)* @bufSamp3, align 4, !gla.uniform !12
+ %s110.i = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %6), !gla.precision !85
+ %7 = sitofp i32 %s110.i to float, !gla.precision !85
+ %8 = call <4 x float> @llvm.gla.fSwizzle.v4f32.f32.v4i32(float %7, <4 x
i32> zeroinitializer)
+ %v12.i = fmul <4 x float> %v8.i, %8, !gla.precision !85
+ %9 = load i32 addrspace(1)* @bufSamp4, align 4, !gla.uniform !15
+ %s114.i = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %9), !gla.precision !85
+ %10 = sitofp i32 %s114.i to float, !gla.precision !85
+ %11 = call <4 x float> @llvm.gla.fSwizzle.v4f32.f32.v4i32(float %10, <4
x i32> zeroinitializer)
+ %v16.i = fmul <4 x float> %v12.i, %11, !gla.precision !85
+ %12 = load i32 addrspace(1)* @bufSamp5, align 4, !gla.uniform !18
+ %s118.i = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %12), !gla.precision !85
+ %13 = sitofp i32 %s118.i to float, !gla.precision !85
+ %14 = call <4 x float> @llvm.gla.fSwizzle.v4f32.f32.v4i32(float %13, <4
x i32> zeroinitializer)
+ %v20.i = fmul <4 x float> %v16.i, %14, !gla.precision !85
+ %15 = load i32 addrspace(1)* @bufSamp6, align 4, !gla.uniform !21
+ %s122.i = call i32 @llvm.gla.queryTextureSizeNoLod.i32(i32 0,
i32 %15), !gla.precision !85
+ %16 = sitofp i32 %s122.i to float, !gla.precision !85
+ %17 = call <4 x float> @llvm.gla.fSwizzle.v4f32.f32.v4i32(float %16, <4
x i32> zeroinitializer)
+ %v24.i = fmul <4 x float> %v20.i, %17, !gla.precision !85
+ %v25.i = call <4 x float>
@llvm.gla.fTexelFetchOffset.v4f32.i32.i32.i32(i32 0, i32 %0, i32 32,
i32 %s122.i, i32 undef, float undef, i32 undef), !gla.precision !85
+ %v26.i = fmul <4 x float> %v25.i, %v24.i, !gla.precision !85
+ %v27.i = call <4 x i32> @llvm.gla.texelFetchOffset.v4i32.i32.i32.i32(i32
0, i32 %3, i32 32, i32 %s122.i, i32 undef, float undef, i32
undef), !gla.precision !85
+ %18 = sitofp <4 x i32> %v27.i to <4 x float>, !gla.precision !85
+ %v28.i = fmul <4 x float> %18, %v26.i, !gla.precision !85
+ %v29.i = call <4 x i32> @llvm.gla.texelFetchOffset.v4i32.i32.i32.i32(i32
0, i32 %6, i32 32, i32 %s122.i, i32 undef, float undef, i32
undef), !gla.precision !85
+ %19 = uitofp <4 x i32> %v29.i to <4 x float>, !gla.precision !85
+ %v30.i = fmul <4 x float> %19, %v28.i, !gla.precision !85
+ %gla_constGEP22 = getelementptr %outName* @outInst, i32 0, i32 0
+ store <4 x float> %v30.i, <4 x float>* %gla_constGEP22, align 16
+ %20 = load i32 addrspace(1)* @CA4, align 4, !gla.uniform !24
+ %iv1.i3 = call <3 x i32> @llvm.gla.queryTextureSize.v3i32(i32 4,
i32 %20, i32 1), !gla.precision !85
+ %21 = load i32 addrspace(1)* @CA5, align 4, !gla.uniform !27
+ %iv3.i4 = call <3 x i32> @llvm.gla.queryTextureSize.v3i32(i32 4,
i32 %21, i32 1), !gla.precision !85
+ %iv4.i5 = add <3 x i32> %iv1.i3, %iv3.i4, !gla.precision !85
+ %22 = load i32 addrspace(1)* @CA6, align 4, !gla.uniform !30
+ %iv5.i6 = call <3 x i32> @llvm.gla.queryTextureSize.v3i32(i32 4,
i32 %22, i32 1), !gla.precision !85
+ %iv6.i7 = add <3 x i32> %iv4.i5, %iv5.i6, !gla.precision !85
+ %23 = load i32 addrspace(1)* @CA7, align 4, !gla.uniform !33
+ %iv7.i = call <3 x i32> @llvm.gla.queryTextureSize.v3i32(i32 4, i32 %23,
i32 1), !gla.precision !85
+ %iv8.i = add <3 x i32> %iv6.i7, %iv7.i, !gla.precision !85
+ %24 = sitofp <3 x i32> %iv8.i to <3 x float>, !gla.precision !85
+ %25 = call <4 x float>
@llvm.gla.fMultiInsert.v4f32.v4f32.v3f32.v3f32.v3f32.f32(<4 x float> undef,
i32 15, <3 x float> %24, i32 0, <3 x float> %24, i32 1, <3 x float> %24,
i32 2, float 1.000000e+00, i32 0)
+ %v11.i9 = call <4 x float> @llvm.gla.fTextureSample.v4f32.v4f32(i32 4,
i32 %20, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>), !gla.precision !85
+ %v12.i10 = fmul <4 x float> %v11.i9, %25, !gla.precision !85
+ %v13.i11 = call float @llvm.gla.fTextureSampleLodRefZ.f32.v4f32(i32 4,
i32 %21, i32 154, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, float 3.000000e+00, float
undef), !gla.precision !85
+ %26 = call <4 x float>
@llvm.gla.fSwizzle.v4f32.f32.v4i32(float %v13.i11, <4 x i32>
zeroinitializer)
+ %v14.i12 = fmul <4 x float> %26, %v12.i10, !gla.precision !85
+ %v15.i = call <4 x i32> @llvm.gla.textureSample.v4i32.v4f32(i32 4,
i32 %22, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>), !gla.precision !85
+ %27 = sitofp <4 x i32> %v15.i to <4 x float>, !gla.precision !85
+ %v16.i13 = fmul <4 x float> %27, %v14.i12, !gla.precision !85
+ %v17.i = call <4 x i32> @llvm.gla.textureSample.v4i32.v4f32(i32 4,
i32 %23, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>), !gla.precision !85
+ %28 = uitofp <4 x i32> %v17.i to <4 x float>, !gla.precision !85
+ %v18.i = fmul <4 x float> %28, %v16.i13, !gla.precision !85
+ %v19.i = call <4 x float>
@llvm.gla.fTextureSampleLodRefZ.v4f32.v4f32(i32 4, i32 %20, i32 148, <4 x
float> <float 5.000000e-01, float 5.000000e-01, float 5.000000e-01, float
5.000000e-01>, float 0x3FCEB851E0000000, float undef), !gla.precision !85
+ %v20.i14 = fmul <4 x float> %v19.i, %v18.i, !gla.precision !85
+ %v21.i = call <4 x i32> @llvm.gla.textureSampleLodRefZ.v4i32.v4f32(i32
4, i32 %22, i32 148, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, float 0x3FD0A3D700000000, float
undef), !gla.precision !85
+ %29 = sitofp <4 x i32> %v21.i to <4 x float>, !gla.precision !85
+ %v22.i = fmul <4 x float> %29, %v20.i14, !gla.precision !85
+ %v23.i = call <4 x i32> @llvm.gla.textureSampleLodRefZ.v4i32.v4f32(i32
4, i32 %23, i32 148, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, float 0x3FD147AE20000000, float
undef), !gla.precision !85
+ %30 = uitofp <4 x i32> %v23.i to <4 x float>, !gla.precision !85
+ %v24.i15 = fmul <4 x float> %30, %v22.i, !gla.precision !85
+ %v25.i16 = call <4 x float>
@llvm.gla.fTextureSampleLodRefZOffsetGrad.v4f32.v4f32.i32.v3f32.v3f32(i32
4, i32 %20, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, float undef, float undef, i32
undef, <3 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000,
float 0x3FB99999A0000000>, <3 x float> <float 0x3FC99999A0000000, float
0x3FC99999A0000000, float 0x3FC99999A0000000>), !gla.precision !85
+ %v26.i17 = fmul <4 x float> %v25.i16, %v24.i15, !gla.precision !85
+ %v27.i18 = call <4 x i32>
@llvm.gla.textureSampleLodRefZOffsetGrad.v4i32.v4f32.i32.v3f32.v3f32(i32 4,
i32 %22, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, float undef, float undef, i32 undef, <3
x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float
0x3FB99999A0000000>, <3 x float> <float 0x3FC99999A0000000, float
0x3FC99999A0000000, float 0x3FC99999A0000000>), !gla.precision !85
+ %31 = sitofp <4 x i32> %v27.i18 to <4 x float>, !gla.precision !85
+ %v28.i19 = fmul <4 x float> %31, %v26.i17, !gla.precision !85
+ %v29.i20 = call <4 x i32>
@llvm.gla.textureSampleLodRefZOffsetGrad.v4i32.v4f32.i32.v3f32.v3f32(i32 4,
i32 %23, i32 16, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, float undef, float undef, i32 undef, <3
x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float
0x3FB99999A0000000>, <3 x float> <float 0x3FC99999A0000000, float
0x3FC99999A0000000, float 0x3FC99999A0000000>), !gla.precision !85
+ %32 = uitofp <4 x i32> %v29.i20 to <4 x float>, !gla.precision !85
+ %v30.i21 = fmul <4 x float> %32, %v28.i19, !gla.precision !85
+ %v31.i = call <4 x float> @llvm.gla.fTexelGather.v4f32.v4f32(i32 4,
i32 %20, i32 80, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, i32 undef, float
undef), !gla.precision !85
+ %v32.i = fmul <4 x float> %v31.i, %v30.i21, !gla.precision !85
+ %v33.i = call <4 x float> @llvm.gla.fTexelGather.v4f32.v4f32(i32 4,
i32 %20, i32 1104, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, i32 2, float
undef), !gla.precision !85
+ %v34.i = fmul <4 x float> %v33.i, %v32.i, !gla.precision !85
+ %v35.i = call <4 x i32> @llvm.gla.texelGather.v4i32.v4f32(i32 4,
i32 %22, i32 80, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, i32 undef, float
undef), !gla.precision !85
+ %33 = sitofp <4 x i32> %v35.i to <4 x float>, !gla.precision !85
+ %v36.i = fmul <4 x float> %33, %v34.i, !gla.precision !85
+ %v37.i = call <4 x i32> @llvm.gla.texelGather.v4i32.v4f32(i32 4,
i32 %22, i32 1104, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, i32 1, float
undef), !gla.precision !85
+ %34 = sitofp <4 x i32> %v37.i to <4 x float>, !gla.precision !85
+ %v38.i = fmul <4 x float> %34, %v36.i, !gla.precision !85
+ %v39.i = call <4 x i32> @llvm.gla.texelGather.v4i32.v4f32(i32 4,
i32 %23, i32 80, <4 x float> <float 5.000000e-01, float 5.000000e-01, float
5.000000e-01, float 5.000000e-01>, i32 undef, float
undef), !gla.precision !85
+ %35 = uitofp <4 x i32> %v39.i to <4 x float>, !gla.precision !85
+ %v40.i = fmul <4 x float> %35, %v38.i, !gla.precision !85
+ %v41.i = call <4 x i32> @llvm.gla.texelGather.v4i32.v4f32(i32 4,
i32 %23, i32 1104, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, i32 0, float
undef), !gla.precision !85
+ %36 = uitofp <4 x i32> %v41.i to <4 x float>, !gla.precision !85
+ %v42.i = fmul <4 x float> %36, %v40.i, !gla.precision !85
+ %v43.i = call <4 x float> @llvm.gla.fTexelGather.v4f32.v4f32(i32 4,
i32 %21, i32 2136, <4 x float> <float 5.000000e-01, float 5.000000e-01,
float 5.000000e-01, float 5.000000e-01>, i32 undef, float
2.500000e+00), !gla.precision !85
+ %v44.i = fmul <4 x float> %v43.i, %v42.i, !gla.precision !85
+ %37 = fadd <4 x float> %v30.i, %v44.i, !gla.precision !85
+ %gla_constGEP23 = getelementptr %outName* @outInst, i32 0, i32 0
+ store <4 x float> %37, <4 x float>* %gla_constGEP23, align 16
+ %38 = load i32 addrspace(1)* @samp2DMSA, align 4, !gla.uniform !36
+ %iv1.i = call <3 x i32> @llvm.gla.queryTextureSizeNoLod.v3i32(i32 6,
i32 %38), !gla.precision !85
+ %39 = load i32 addrspace(1)* @samp2DMSAi, align 4, !gla.uniform !39
+ %iv3.i = call <3 x i32> @llvm.gla.queryTextureSizeNoLod.v3i32(i32 6,
i32 %39), !gla.precision !85
+ %iv4.i = add <3 x i32> %iv1.i, %iv3.i, !gla.precision !85
+ %40 = load i32 addrspace(1)* @samp2DMSAu, align 4, !gla.uniform !42
+ %iv5.i = call <3 x i32> @llvm.gla.queryTextureSizeNoLod.v3i32(i32 6,
i32 %40), !gla.precision !85
+ %iv6.i = add <3 x i32> %iv4.i, %iv5.i, !gla.precision !85
+ %41 = sitofp <3 x i32> %iv6.i to <3 x float>, !gla.precision !85
+ %42 = call <4 x float>
@llvm.gla.fMultiInsert.v4f32.v4f32.v3f32.v3f32.v3f32.f32(<4 x float> undef,
i32 15, <3 x float> %41, i32 0, <3 x float> %41, i32 1, <3 x float> %41,
i32 2, float 1.000000e+00, i32 0)
+ %v9.i = call <4 x float>
@llvm.gla.fTexelFetchOffset.v4f32.v3i32.i32.i32(i32 6, i32 %38, i32 690, <3
x i32> <i32 5, i32 5, i32 5>, i32 2, float undef, i32
undef), !gla.precision !85
+ %v10.i = fmul <4 x float> %v9.i, %42, !gla.precision !85
+ %v11.i = call <4 x i32>
@llvm.gla.texelFetchOffset.v4i32.v3i32.i32.i32(i32 6, i32 %39, i32 690, <3
x i32> <i32 5, i32 5, i32 5>, i32 2, float undef, i32
undef), !gla.precision !85
+ %43 = sitofp <4 x i32> %v11.i to <4 x float>, !gla.precision !85
+ %v12.i2 = fmul <4 x float> %43, %v10.i, !gla.precision !85
+ %v13.i = call <4 x i32>
@llvm.gla.texelFetchOffset.v4i32.v3i32.i32.i32(i32 6, i32 %40, i32 690, <3
x i32> <i32 5, i32 5, i32 5>, i32 2, float undef, i32
undef), !gla.precision !85
+ %44 = uitofp <4 x i32> %v13.i to <4 x float>, !gla.precision !85
+ %v14.i = fmul <4 x float> %44, %v12.i2, !gla.precision !85
+ %45 = fadd <4 x float> %37, %v14.i, !gla.precision !85
+ %gla_constGEP24 = getelementptr %outName* @outInst, i32 0, i32 0
+ store <4 x float> %45, <4 x float>* %gla_constGEP24, align 16
+ br label %stage-epilogue
+
+stage-epilogue: ; preds = %entry
+ br label %stage-exit
+
+stage-exit: ; preds = %stage-epilogue
+ ret void
+}
+
+; Function Attrs: nounwind readnone
+declare i32 @llvm.gla.queryTextureSizeNoLod.i32(i32, i32) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fTexelFetchOffset.v4f32.i32.i32.i32(i32,
i32, i32, i32, i32, float, i32) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x i32> @llvm.gla.texelFetchOffset.v4i32.i32.i32.i32(i32, i32,
i32, i32, i32, float, i32) #0
+
+; Function Attrs: nounwind readnone
+declare <3 x i32> @llvm.gla.queryTextureSize.v3i32(i32, i32, i32) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fTextureSample.v4f32.v4f32(i32, i32, i32, <4
x float>) #0
+
+; Function Attrs: nounwind readnone
+declare float @llvm.gla.fTextureSampleLodRefZ.f32.v4f32(i32, i32, i32, <4
x float>, float, float) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x i32> @llvm.gla.textureSample.v4i32.v4f32(i32, i32, i32, <4 x
float>) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fTextureSampleLodRefZ.v4f32.v4f32(i32, i32,
i32, <4 x float>, float, float) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x i32> @llvm.gla.textureSampleLodRefZ.v4i32.v4f32(i32, i32,
i32, <4 x float>, float, float) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x float>
@llvm.gla.fTextureSampleLodRefZOffsetGrad.v4f32.v4f32.i32.v3f32.v3f32(i32,
i32, i32, <4 x float>, float, float, i32, <3 x float>, <3 x float>) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x i32>
@llvm.gla.textureSampleLodRefZOffsetGrad.v4i32.v4f32.i32.v3f32.v3f32(i32,
i32, i32, <4 x float>, float, float, i32, <3 x float>, <3 x float>) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fTexelGather.v4f32.v4f32(i32, i32, i32, <4 x
float>, i32, float) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x i32> @llvm.gla.texelGather.v4i32.v4f32(i32, i32, i32, <4 x
float>, i32, float) #0
+
+; Function Attrs: nounwind readnone
+declare <3 x i32> @llvm.gla.queryTextureSizeNoLod.v3i32(i32, i32) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fTexelFetchOffset.v4f32.v3i32.i32.i32(i32,
i32, i32, <3 x i32>, i32, float, i32) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x i32> @llvm.gla.texelFetchOffset.v4i32.v3i32.i32.i32(i32, i32,
i32, <3 x i32>, i32, float, i32) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x float>
@llvm.gla.fMultiInsert.v4f32.v4f32.v3f32.v3f32.v3f32.f32(<4 x float>, i32,
<3 x float>, i32, <3 x float>, i32, <3 x float>, i32, float, i32) #0
+
+; Function Attrs: nounwind readnone
+declare <4 x float> @llvm.gla.fSwizzle.v4f32.f32.v4i32(float, <4 x i32>) #0
+
+attributes #0 = { nounwind readnone }
+
+!gla.entrypoint = !{!0}
+!gla.uniforms
= !{!1, !4, !6, !9, !12, !15, !18, !21, !24, !27, !30, !33, !36, !39, !42, !45, !48, !52, !55, !58, !61, !64, !67, !70}
+!gla.outputs = !{!71}
+!gla.noStaticUse
= !{!45, !48, !75, !77, !79, !52, !55, !58, !61, !64, !67, !70, !81, !83}
+!gla.inputs = !{!75, !77, !79, !81, !83}
+
+!0 = metadata !{metadata !"main", i32 15}
+!1 = metadata !{metadata !"iArray", i32 12, [5 x i32]* @iArray_typeProxy,
metadata !2}
+!2 = metadata !{i32 5, i32 1, i32 1024, metadata !3}
+!3 = metadata !{i32 1, [5 x i32]* @iArray_typeProxy, i32 1, i1 false, i1
false, i32 0}
+!4 = metadata !{metadata !"index", i32 12, i32* @index_typeProxy,
metadata !5}
+!5 = metadata !{i32 0, i32 3, i32 1024, null}
+!6 = metadata !{metadata !"bufSamp1", i32 12, i32* @bufSamp1_typeProxy,
metadata !7}
+!7 = metadata !{i32 5, i32 3, i32 1024, metadata !8}
+!8 = metadata !{i32 0, i32* @bufSamp1_typeProxy, i32 5, i1 false, i1
false, i32 0}
+!9 = metadata !{metadata !"bufSamp2", i32 12, i32* @bufSamp2_typeProxy,
metadata !10}
+!10 = metadata !{i32 5, i32 3, i32 1024, metadata !11}
+!11 = metadata !{i32 0, i32* @bufSamp2_typeProxy, i32 5, i1 false, i1
false, i32 1}
+!12 = metadata !{metadata !"bufSamp3", i32 12, i32* @bufSamp3_typeProxy,
metadata !13}
+!13 = metadata !{i32 5, i32 3, i32 1024, metadata !14}
+!14 = metadata !{i32 0, i32* @bufSamp3_typeProxy, i32 5, i1 false, i1
false, i32 2}
+!15 = metadata !{metadata !"bufSamp4", i32 12, i32* @bufSamp4_typeProxy,
metadata !16}
+!16 = metadata !{i32 5, i32 3, i32 1024, metadata !17}
+!17 = metadata !{i32 1, i32* @bufSamp4_typeProxy, i32 5, i1 false, i1
false, i32 0}
+!18 = metadata !{metadata !"bufSamp5", i32 12, i32* @bufSamp5_typeProxy,
metadata !19}
+!19 = metadata !{i32 5, i32 3, i32 1024, metadata !20}
+!20 = metadata !{i32 1, i32* @bufSamp5_typeProxy, i32 5, i1 false, i1
false, i32 1}
+!21 = metadata !{metadata !"bufSamp6", i32 12, i32* @bufSamp6_typeProxy,
metadata !22}
+!22 = metadata !{i32 5, i32 3, i32 1024, metadata !23}
+!23 = metadata !{i32 1, i32* @bufSamp6_typeProxy, i32 5, i1 false, i1
false, i32 2}
+!24 = metadata !{metadata !"CA4", i32 12, i32* @CA4_typeProxy,
metadata !25}
+!25 = metadata !{i32 5, i32 3, i32 1024, metadata !26}
+!26 = metadata !{i32 0, i32* @CA4_typeProxy, i32 3, i1 true, i1 false, i32
0}
+!27 = metadata !{metadata !"CA5", i32 12, i32* @CA5_typeProxy,
metadata !28}
+!28 = metadata !{i32 5, i32 3, i32 1024, metadata !29}
+!29 = metadata !{i32 0, i32* @CA5_typeProxy, i32 3, i1 true, i1 true, i32
0}
+!30 = metadata !{metadata !"CA6", i32 12, i32* @CA6_typeProxy,
metadata !31}
+!31 = metadata !{i32 5, i32 3, i32 1024, metadata !32}
+!32 = metadata !{i32 0, i32* @CA6_typeProxy, i32 3, i1 true, i1 false, i32
1}
+!33 = metadata !{metadata !"CA7", i32 12, i32* @CA7_typeProxy,
metadata !34}
+!34 = metadata !{i32 5, i32 3, i32 1024, metadata !35}
+!35 = metadata !{i32 0, i32* @CA7_typeProxy, i32 3, i1 true, i1 false, i32
2}
+!36 = metadata !{metadata !"samp2DMSA", i32 12, i32* @samp2DMSA_typeProxy,
metadata !37}
+!37 = metadata !{i32 5, i32 3, i32 1024, metadata !38}
+!38 = metadata !{i32 0, i32* @samp2DMSA_typeProxy, i32 1, i1 true, i1
false, i32 0}
+!39 = metadata !{metadata !"samp2DMSAi", i32 12, i32*
@samp2DMSAi_typeProxy, metadata !40}
+!40 = metadata !{i32 5, i32 3, i32 1024, metadata !41}
+!41 = metadata !{i32 0, i32* @samp2DMSAi_typeProxy, i32 1, i1 true, i1
false, i32 1}
+!42 = metadata !{metadata !"samp2DMSAu", i32 12, i32*
@samp2DMSAu_typeProxy, metadata !43}
+!43 = metadata !{i32 5, i32 3, i32 1024, metadata !44}
+!44 = metadata !{i32 0, i32* @samp2DMSAu_typeProxy, i32 1, i1 true, i1
false, i32 2}
+!45 = metadata !{metadata !"sArray", i32 12, [4 x i32]* @sArray_typeProxy,
metadata !46}
+!46 = metadata !{i32 5, i32 1, i32 1024, metadata !47}
+!47 = metadata !{i32 0, [4 x i32]* @sArray_typeProxy, i32 1, i1 false, i1
false, i32 0}
+!48 = metadata !{metadata !"ubInst", i32 13, [4 x %ubName]*
@ubInst_typeProxy, metadata !49, metadata !50}
+!49 = metadata !{i32 6, i32 0, i32 1024, null}
+!50 = metadata !{metadata !"ubName", metadata !49, metadata !"p",
metadata !51}
+!51 = metadata !{metadata !"", metadata !5}
+!52 = metadata !{metadata !"CA1", i32 12, i32* @CA1_typeProxy,
metadata !53}
+!53 = metadata !{i32 5, i32 3, i32 1024, metadata !54}
+!54 = metadata !{i32 1, i32* @CA1_typeProxy, i32 3, i1 true, i1 false, i32
0}
+!55 = metadata !{metadata !"CA2", i32 12, i32* @CA2_typeProxy,
metadata !56}
+!56 = metadata !{i32 5, i32 3, i32 1024, metadata !57}
+!57 = metadata !{i32 1, i32* @CA2_typeProxy, i32 3, i1 true, i1 false, i32
1}
+!58 = metadata !{metadata !"CA3", i32 12, i32* @CA3_typeProxy,
metadata !59}
+!59 = metadata !{i32 5, i32 3, i32 1024, metadata !60}
+!60 = metadata !{i32 1, i32* @CA3_typeProxy, i32 3, i1 true, i1 false, i32
2}
+!61 = metadata !{metadata !"im2Df", i32 12, i32* @im2Df_typeProxy,
metadata !62}
+!62 = metadata !{i32 5, i32 3, i32 1024, metadata !63}
+!63 = metadata !{i32 4, i32* @im2Df_typeProxy, i32 1, i1 false, i1 false,
i32 0}
+!64 = metadata !{metadata !"im2Du", i32 12, i32* @im2Du_typeProxy,
metadata !65}
+!65 = metadata !{i32 5, i32 3, i32 1024, metadata !66}
+!66 = metadata !{i32 34, i32* @im2Du_typeProxy, i32 1, i1 false, i1 false,
i32 2}
+!67 = metadata !{metadata !"im2Di", i32 12, i32* @im2Di_typeProxy,
metadata !68}
+!68 = metadata !{i32 5, i32 3, i32 1024, metadata !69}
+!69 = metadata !{i32 25, i32* @im2Di_typeProxy, i32 1, i1 false, i1 false,
i32 1}
+!70 = metadata !{metadata !"P", i32 12, <2 x i32>* @P_typeProxy,
metadata !5}
+!71 = metadata !{metadata !"outInst", i32 16, %outName*
@outInst_typeProxy, metadata !72, metadata !73}
+!72 = metadata !{i32 0, i32 0, i32 1024, null, i32 0}
+!73 = metadata !{metadata !"outName", metadata !74, metadata !"color",
metadata !51}
+!74 = metadata !{i32 0, i32 0, i32 1024, null}
+!75 = metadata !{metadata !"inf", i32 1, <2 x float>* @inf_typeProxy,
metadata !76}
+!76 = metadata !{i32 0, i32 3, i32 1025, null, i32 0}
+!77 = metadata !{metadata !"ing", i32 1, <2 x float>* @ing_typeProxy,
metadata !78}
+!78 = metadata !{i32 0, i32 3, i32 1026, null, i32 0}
+!79 = metadata !{metadata !"inch", i32 1, <2 x float>* @inch_typeProxy,
metadata !80}
+!80 = metadata !{i32 0, i32 3, i32 1027, null, i32 0}
+!81 = metadata !{metadata !"gl_VertexID", i32 2, i32*
@gl_VertexID_typeProxy, metadata !82}
+!82 = metadata !{i32 0, i32 3, i32 1028, null, i32 0, i32 7}
+!83 = metadata !{metadata !"gl_InstanceID", i32 3, i32*
@gl_InstanceID_typeProxy, metadata !84}
+!84 = metadata !{i32 0, i32 3, i32 1029, null, i32 0, i32 8}
+!85 = metadata !{i32 3}
+#version 310 es
+// LunarGOO output
+#extension GL_ANDROID_extension_pack_es31a : enable
+#extension GL_EXT_geometry_shader : enable
+#extension GL_EXT_gpu_shader5 : enable
+#extension GL_EXT_primitive_bounding_box : enable
+#extension GL_EXT_shader_io_blocks : enable
+#extension GL_EXT_tessellation_shader : enable
+#extension GL_EXT_texture_buffer : enable
+#extension GL_EXT_texture_cube_map_array : enable
+#extension GL_KHR_blend_equation_advanced : enable
+#extension GL_OES_sample_variables : enable
+#extension GL_OES_shader_image_atomic : enable
+#extension GL_OES_shader_multisample_interpolation : enable
+#extension GL_OES_texture_storage_multisample_2d_array : enable
+uniform lowp image2D iArray[5];
+uniform highp int index;
+uniform highp samplerBuffer bufSamp1;
+uniform highp isamplerBuffer bufSamp2;
+uniform highp usamplerBuffer bufSamp3;
+uniform highp imageBuffer bufSamp4;
+uniform highp iimageBuffer bufSamp5;
+uniform highp uimageBuffer bufSamp6;
+uniform highp samplerCubeArray CA4;
+uniform highp samplerCubeArrayShadow CA5;
+uniform highp isamplerCubeArray CA6;
+uniform highp usamplerCubeArray CA7;
+uniform highp sampler2DArray samp2DMSA;
+uniform highp isampler2DArray samp2DMSAi;
+uniform highp usampler2DArray samp2DMSAu;
+uniform lowp sampler2D sArray[4];
+uniform ubName {
+ highp vec2 p;
+} ubInst[4];
+uniform highp imageCubeArray CA1;
+uniform highp iimageCubeArray CA2;
+uniform highp uimageCubeArray CA3;
+uniform layout(r32f) highp image2D im2Df;
+uniform layout(r32ui) highp uimage2D im2Du;
+uniform layout(r32i) highp iimage2D im2Di;
+uniform highp ivec2 P;
+in highp vec2 inf;
+in highp vec2 ing;
+in highp vec2 inch;
+out outName {
+ highp vec4 color;
+} outInst;
+const vec4 C_vec4p0d0p = vec4(0.0);
+const int C_1 = 1;
+const float C_1d0 = 1.0;
+const vec4 C_vec4p0d5p = vec4(0.5);
+const float C_3d0 = 3.0;
+const float C_0d24 = 0.24;
+const float C_0d26 = 0.26;
+const float C_0d27 = 0.27;
+const vec3 C_vec3p0d1p = vec3(0.1);
+const vec3 C_vec3p0d2p = vec3(0.2);
+const int C_2 = 2;
+const int C_0 = 0;
+const float C_2d5 = 2.5;
+const ivec3 C_ivec3p5p = ivec3(5);
+
+void main()
+{
+ outInst.color = C_vec4p0d0p;
+ highp int Lg_1 = textureSize(bufSamp1);
+ highp float H_5v2vcj = float(Lg_1);
+ vec4 H_la5q6l = vec4(H_5v2vcj);
+ highp int Lg_2 = textureSize(bufSamp2);
+ highp float H_ywqokl = float(Lg_2);
+ vec4 H_29tz9q = vec4(H_ywqokl);
+ highp vec4 H_3xahmr = H_29tz9q * H_la5q6l;
+ highp int Lg_3 = textureSize(bufSamp3);
+ highp float H_zfwzkb = float(Lg_3);
+ vec4 H_jtcw6e = vec4(H_zfwzkb);
+ highp vec4 H_luimj8 = H_3xahmr * H_jtcw6e;
+ highp int Lg_4 = textureSize(bufSamp4);
+ highp float H_0s46rh1 = float(Lg_4);
+ vec4 H_jd3i9b1 = vec4(H_0s46rh1);
+ highp vec4 H_wm18z6 = H_jd3i9b1 * H_luimj8;
+ highp int Lg_5 = textureSize(bufSamp5);
+ highp float H_lexa7c1 = float(Lg_5);
+ vec4 H_k45lki1 = vec4(H_lexa7c1);
+ highp vec4 H_98l7fq1 = H_k45lki1 * H_wm18z6;
+ highp int Lg_6 = textureSize(bufSamp6);
+ highp float H_yj8yui1 = float(Lg_6);
+ vec4 H_g3hesn = vec4(H_yj8yui1);
+ highp vec4 H_j6fx9c = H_98l7fq1 * H_g3hesn;
+ highp vec4 H_bcrdx01 = texelFetch(bufSamp1, Lg_6);
+ highp vec4 H_l9c0mm = H_bcrdx01 * H_j6fx9c;
+ highp ivec4 H_gdejk5 = texelFetch(bufSamp2, Lg_6);
+ highp vec4 H_j2ruuo1 = vec4(H_gdejk5);
+ highp vec4 H_50ur791 = H_j2ruuo1 * H_l9c0mm;
+ highp ivec4 H_pzovy8 = ivec4(texelFetch(bufSamp3, Lg_6));
+ highp vec4 H_d3uyai = vec4(H_pzovy8);
+ highp vec4 H_h5h6nl = H_50ur791 * H_d3uyai;
+ outInst.color = H_h5h6nl;
+ highp ivec3 iv = textureSize(CA4, C_1);
+ highp ivec3 iv1 = textureSize(CA5, C_1);
+ highp ivec3 iv2 = iv + iv1;
+ highp ivec3 iv3 = textureSize(CA6, C_1);
+ highp ivec3 iv4 = iv2 + iv3;
+ highp ivec3 iv5 = textureSize(CA7, C_1);
+ highp ivec3 iv6 = iv4 + iv5;
+ highp vec3 H_g322641 = vec3(iv6);
+ vec4 H_inqosb1 = vec4(H_g322641.x, H_g322641.y, H_g322641.z, C_1d0);
+ highp vec4 H_4nebdn1 = texture(CA4, C_vec4p0d5p);
+ highp vec4 H_m7j3jt1 = H_4nebdn1 * H_inqosb1;
+ highp float H_2eorl7 = texture(CA5, C_vec4p0d5p, C_3d0);
+ vec4 H_wtvc7b = vec4(H_2eorl7);
+ highp vec4 H_u3k9lq1 = H_m7j3jt1 * H_wtvc7b;
+ highp ivec4 H_ekbbp1 = texture(CA6, C_vec4p0d5p);
+ highp vec4 H_ay1qwg = vec4(H_ekbbp1);
+ highp vec4 H_hkviev = H_ay1qwg * H_u3k9lq1;
+ highp ivec4 H_zszx85 = ivec4(texture(CA7, C_vec4p0d5p));
+ highp vec4 H_lvv8bu1 = vec4(H_zszx85);
+ highp vec4 H_6ois2w1 = H_hkviev * H_lvv8bu1;
+ highp vec4 H_flh258 = textureLod(CA4, C_vec4p0d5p, C_0d24);
+ highp vec4 H_fafvc6 = H_6ois2w1 * H_flh258;
+ highp ivec4 H_fzum841 = textureLod(CA6, C_vec4p0d5p, C_0d26);
+ highp vec4 H_swd5rv = vec4(H_fzum841);
+ highp vec4 H_20qjt21 = H_fafvc6 * H_swd5rv;
+ highp ivec4 H_pcayl01 = ivec4(textureLod(CA7, C_vec4p0d5p, C_0d27));
+ highp vec4 H_t6ywbf = vec4(H_pcayl01);
+ highp vec4 H_r3xff01 = H_20qjt21 * H_t6ywbf;
+ highp vec4 H_lf9phc = textureGrad(CA4, C_vec4p0d5p, C_vec3p0d1p,
C_vec3p0d2p);
+ highp vec4 H_tjqvob = H_lf9phc * H_r3xff01;
+ highp ivec4 H_vl4dwn = textureGrad(CA6, C_vec4p0d5p, C_vec3p0d1p,
C_vec3p0d2p);
+ highp vec4 H_eniryi1 = vec4(H_vl4dwn);
+ highp vec4 H_06gfbk = H_eniryi1 * H_tjqvob;
+ highp ivec4 H_0xnjfd = ivec4(textureGrad(CA7, C_vec4p0d5p, C_vec3p0d1p,
C_vec3p0d2p));
+ highp vec4 H_t6i666 = vec4(H_0xnjfd);
+ highp vec4 H_m2q9z81 = H_06gfbk * H_t6i666;
+ highp vec4 H_bd785s1 = textureGather(CA4, C_vec4p0d5p);
+ highp vec4 H_n795jd1 = H_bd785s1 * H_m2q9z81;
+ highp vec4 H_7lavnb = textureGather(CA4, C_vec4p0d5p, C_2);
+ highp vec4 H_rbtcu1 = H_7lavnb * H_n795jd1;
+ highp ivec4 H_9xh0a6 = textureGather(CA6, C_vec4p0d5p);
+ highp vec4 H_l4nm1w1 = vec4(H_9xh0a6);
+ highp vec4 H_0fnv111 = H_l4nm1w1 * H_rbtcu1;
+ highp ivec4 H_ymfw2s = textureGather(CA6, C_vec4p0d5p, C_1);
+ highp vec4 H_t56auu1 = vec4(H_ymfw2s);
+ highp vec4 H_t1j88p = H_0fnv111 * H_t56auu1;
+ highp ivec4 H_ydllmd = ivec4(textureGather(CA7, C_vec4p0d5p));
+ highp vec4 H_3ipl0p = vec4(H_ydllmd);
+ highp vec4 H_u1y7w2 = H_3ipl0p * H_t1j88p;
+ highp ivec4 H_ooduar1 = ivec4(textureGather(CA7, C_vec4p0d5p, C_0));
+ highp vec4 H_cf048n1 = vec4(H_ooduar1);
+ highp vec4 H_i1hxmq = H_cf048n1 * H_u1y7w2;
+ highp vec4 H_jf20ca1 = textureGather(CA5, C_vec4p0d5p, C_2d5);
+ highp vec4 H_klp7s41 = H_i1hxmq * H_jf20ca1;
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/test/runtests Tue Aug 11 15:06:31 2015 UTC
+++ /trunk/test/runtests Mon Aug 17 22:08:33 2015 UTC
@@ -14,6 +14,11 @@

# Individual isolated tests, which will also catch the IRs, but slower
than doing multithreaded
ISOLATEDTESTS=(flowControl.frag \
+ aep.vert \
+ aep.tesc \
+ aep.tese \
+ aep.geom \
+ aep.frag \
Operations.frag \
conversion.frag \
prepost.frag \
Reply all
Reply to author
Forward
0 new messages