debug_get_flags_option: RADEON_DEBUG = 0x0 debug_get_bool_option: RADEON_NO_TCL = FALSE couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable debug_get_bool_option: GALLIUM_RBUG = FALSE debug_get_option: GALLIUM_TRACE = (null) debug_get_bool_option: GALLIUM_GALAHAD = FALSE debug_get_flags_option: GALLIVM_DEBUG = 0x1 (tgsi) util_cpu_caps.arch = 4 util_cpu_caps.nr_cpus = 1 util_cpu_caps.x86_cpu_type = 8 util_cpu_caps.cacheline = 64 util_cpu_caps.has_tsc = 1 util_cpu_caps.has_mmx = 1 util_cpu_caps.has_mmx2 = 1 util_cpu_caps.has_sse = 1 util_cpu_caps.has_sse2 = 1 util_cpu_caps.has_sse3 = 1 util_cpu_caps.has_ssse3 = 0 util_cpu_caps.has_sse4_1 = 0 util_cpu_caps.has_3dnow = 1 util_cpu_caps.has_3dnow_ext = 1 util_cpu_caps.has_altivec = 0 debug_get_bool_option: DRAW_FSE = FALSE debug_get_bool_option: DRAW_NO_FSE = FALSE debug_get_bool_option: DRAW_USE_LLVM = TRUE debug_get_bool_option: GALLIUM_DUMP_VS = FALSE debug_get_bool_option: MESA_MVP_DP4 = FALSE debug_get_flags_option: GALLIVM_DEBUG = 0x1 (tgsi) Integer arithmetic operators only work with integral types! %224 = mul <4 x float> %163, %223 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %229 = mul <4 x float> %163, %228 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %234 = mul <4 x float> %163, %233 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %239 = mul <4 x float> %163, %238 ; <<4 x float>> [#uses=1] Instruction does not dominate all uses! %224 = mul <4 x float> %163, %223 ; <<4 x float>> [#uses=1] store <4 x float> %224, <4 x float>* %11 Instruction does not dominate all uses! %229 = mul <4 x float> %163, %228 ; <<4 x float>> [#uses=1] store <4 x float> %229, <4 x float>* %10 Instruction does not dominate all uses! %234 = mul <4 x float> %163, %233 ; <<4 x float>> [#uses=1] store <4 x float> %234, <4 x float>* %9 Instruction does not dominate all uses! %239 = mul <4 x float> %163, %238 ; <<4 x float>> [#uses=1] store <4 x float> %239, <4 x float>* %8 Integer arithmetic operators only work with integral types! %245 = mul <4 x float> %171, %243 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %246 = add <4 x float> %245, %244 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %252 = mul <4 x float> %171, %250 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %253 = add <4 x float> %252, %251 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %259 = mul <4 x float> %171, %257 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %260 = add <4 x float> %259, %258 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %266 = mul <4 x float> %171, %264 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %267 = add <4 x float> %266, %265 ; <<4 x float>> [#uses=1] Instruction does not dominate all uses! %246 = add <4 x float> %245, %244 ; <<4 x float>> [#uses=1] store <4 x float> %246, <4 x float>* %11 Instruction does not dominate all uses! %253 = add <4 x float> %252, %251 ; <<4 x float>> [#uses=1] store <4 x float> %253, <4 x float>* %10 Instruction does not dominate all uses! %260 = add <4 x float> %259, %258 ; <<4 x float>> [#uses=1] store <4 x float> %260, <4 x float>* %9 Instruction does not dominate all uses! %267 = add <4 x float> %266, %265 ; <<4 x float>> [#uses=1] store <4 x float> %267, <4 x float>* %8 Integer arithmetic operators only work with integral types! %273 = mul <4 x float> %179, %271 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %274 = add <4 x float> %273, %272 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %280 = mul <4 x float> %179, %278 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %281 = add <4 x float> %280, %279 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %287 = mul <4 x float> %179, %285 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %288 = add <4 x float> %287, %286 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %294 = mul <4 x float> %179, %292 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %295 = add <4 x float> %294, %293 ; <<4 x float>> [#uses=1] Instruction does not dominate all uses! %274 = add <4 x float> %273, %272 ; <<4 x float>> [#uses=1] store <4 x float> %274, <4 x float>* %11 Instruction does not dominate all uses! %281 = add <4 x float> %280, %279 ; <<4 x float>> [#uses=1] store <4 x float> %281, <4 x float>* %10 Instruction does not dominate all uses! %288 = add <4 x float> %287, %286 ; <<4 x float>> [#uses=1] store <4 x float> %288, <4 x float>* %9 Instruction does not dominate all uses! %295 = add <4 x float> %294, %293 ; <<4 x float>> [#uses=1] store <4 x float> %295, <4 x float>* %8 Integer arithmetic operators only work with integral types! %301 = mul <4 x float> %187, %299 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %302 = add <4 x float> %301, %300 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %308 = mul <4 x float> %187, %306 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %309 = add <4 x float> %308, %307 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %315 = mul <4 x float> %187, %313 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %316 = add <4 x float> %315, %314 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %322 = mul <4 x float> %187, %320 ; <<4 x float>> [#uses=1] Integer arithmetic operators only work with integral types! %323 = add <4 x float> %322, %321 ; <<4 x float>> [#uses=1] Instruction does not dominate all uses! %302 = add <4 x float> %301, %300 ; <<4 x float>> [#uses=1] store <4 x float> %302, <4 x float>* %3 Instruction does not dominate all uses! %309 = add <4 x float> %308, %307 ; <<4 x float>> [#uses=1] store <4 x float> %309, <4 x float>* %2 Instruction does not dominate all uses! %316 = add <4 x float> %315, %314 ; <<4 x float>> [#uses=1] store <4 x float> %316, <4 x float>* %1 Instruction does not dominate all uses! %323 = add <4 x float> %322, %321 ; <<4 x float>> [#uses=1] store <4 x float> %323, <4 x float>* %0 Broken module found, verification continues. define void @draw_llvm_shader(%draw_jit_context* noalias %context, %vertex_header4* noalias %io, i8** noalias %vbuffers, i32 %start, i32 %count, i32 %stride, %pipe_vertex_buffer* noalias %vb, i32 %instance_id) { entry: %0 = alloca <4 x float> ; <<4 x float>*> [#uses=3] %1 = alloca <4 x float> ; <<4 x float>*> [#uses=3] %2 = alloca <4 x float> ; <<4 x float>*> [#uses=3] %3 = alloca <4 x float> ; <<4 x float>*> [#uses=3] %4 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %5 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %6 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %7 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %8 = alloca <4 x float> ; <<4 x float>*> [#uses=6] %9 = alloca <4 x float> ; <<4 x float>*> [#uses=6] %10 = alloca <4 x float> ; <<4 x float>*> [#uses=6] %11 = alloca <4 x float> ; <<4 x float>*> [#uses=6] %12 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %13 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %14 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %15 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %16 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %17 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %18 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %19 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %20 = add i32 %start, %count ; [#uses=1] br label %loop loop: ; preds = %loop, %entry %21 = phi i32 [ %start, %entry ], [ %548, %loop ] ; [#uses=6] %22 = sub i32 %21, %start ; [#uses=1] %23 = getelementptr %vertex_header4* %io, i32 %22 ; <%vertex_header4*> [#uses=12] %24 = add i32 %21, 0 ; [#uses=4] %25 = getelementptr %pipe_vertex_buffer* %vb, i32 0 ; <%pipe_vertex_buffer*> [#uses=3] %26 = getelementptr i8** %vbuffers, i64 0 ; [#uses=1] %.stride_ptr = getelementptr %pipe_vertex_buffer* %25, i32 0, i32 0 ; [#uses=1] %.stride = load i32* %.stride_ptr ; [#uses=1] %.max_index_ptr = getelementptr %pipe_vertex_buffer* %25, i32 0, i32 1 ; [#uses=1] %.max_index = load i32* %.max_index_ptr ; [#uses=2] %.buffer_offset_ptr = getelementptr %pipe_vertex_buffer* %25, i32 0, i32 2 ; [#uses=1] %.buffer_offset = load i32* %.buffer_offset_ptr ; [#uses=1] %27 = icmp ule i32 %24, %.max_index ; [#uses=1] %28 = select i1 %27, i32 %24, i32 %.max_index ; [#uses=1] %29 = mul i32 %.stride, %28 ; [#uses=1] %vbuffer = load i8** %26 ; [#uses=1] %30 = add i32 %29, %.buffer_offset ; [#uses=1] %31 = add i32 %30, 0 ; [#uses=1] %32 = getelementptr i8* %vbuffer, i32 %31 ; [#uses=2] %src_tmp = getelementptr i8* %32, i32 0 ; [#uses=1] %33 = bitcast i8* %src_tmp to float* ; [#uses=1] %34 = load float* %33 ; [#uses=1] %35 = insertelement <4 x float> zeroinitializer, float %34, i32 0 ; <<4 x float>> [#uses=1] %src_tmp1 = getelementptr i8* %32, i32 4 ; [#uses=1] %36 = bitcast i8* %src_tmp1 to float* ; [#uses=1] %37 = load float* %36 ; [#uses=1] %38 = insertelement <4 x float> %35, float %37, i32 1 ; <<4 x float>> [#uses=1] %39 = insertelement <4 x float> %38, float 0.000000e+00, i32 2 ; <<4 x float>> [#uses=1] %40 = insertelement <4 x float> %39, float 1.000000e+00, i32 3 ; <<4 x float>> [#uses=4] %41 = getelementptr %pipe_vertex_buffer* %vb, i32 0 ; <%pipe_vertex_buffer*> [#uses=3] %42 = getelementptr i8** %vbuffers, i64 0 ; [#uses=1] %.stride_ptr2 = getelementptr %pipe_vertex_buffer* %41, i32 0, i32 0 ; [#uses=1] %.stride3 = load i32* %.stride_ptr2 ; [#uses=1] %.max_index_ptr4 = getelementptr %pipe_vertex_buffer* %41, i32 0, i32 1 ; [#uses=1] %.max_index5 = load i32* %.max_index_ptr4 ; [#uses=2] %.buffer_offset_ptr6 = getelementptr %pipe_vertex_buffer* %41, i32 0, i32 2 ; [#uses=1] %.buffer_offset7 = load i32* %.buffer_offset_ptr6 ; [#uses=1] %43 = icmp ule i32 %24, %.max_index5 ; [#uses=1] %44 = select i1 %43, i32 %24, i32 %.max_index5 ; [#uses=1] %45 = mul i32 %.stride3, %44 ; [#uses=1] %vbuffer8 = load i8** %42 ; [#uses=1] %46 = add i32 %45, %.buffer_offset7 ; [#uses=1] %47 = add i32 %46, 8 ; [#uses=1] %48 = getelementptr i8* %vbuffer8, i32 %47 ; [#uses=2] %src_tmp9 = getelementptr i8* %48, i32 0 ; [#uses=1] %49 = bitcast i8* %src_tmp9 to float* ; [#uses=1] %50 = load float* %49 ; [#uses=1] %51 = insertelement <4 x float> zeroinitializer, float %50, i32 0 ; <<4 x float>> [#uses=1] %src_tmp10 = getelementptr i8* %48, i32 4 ; [#uses=1] %52 = bitcast i8* %src_tmp10 to float* ; [#uses=1] %53 = load float* %52 ; [#uses=1] %54 = insertelement <4 x float> %51, float %53, i32 1 ; <<4 x float>> [#uses=1] %55 = insertelement <4 x float> %54, float 0.000000e+00, i32 2 ; <<4 x float>> [#uses=1] %56 = insertelement <4 x float> %55, float 1.000000e+00, i32 3 ; <<4 x float>> [#uses=4] %57 = add i32 %21, 1 ; [#uses=4] %58 = getelementptr %pipe_vertex_buffer* %vb, i32 0 ; <%pipe_vertex_buffer*> [#uses=3] %59 = getelementptr i8** %vbuffers, i64 0 ; [#uses=1] %.stride_ptr11 = getelementptr %pipe_vertex_buffer* %58, i32 0, i32 0 ; [#uses=1] %.stride12 = load i32* %.stride_ptr11 ; [#uses=1] %.max_index_ptr13 = getelementptr %pipe_vertex_buffer* %58, i32 0, i32 1 ; [#uses=1] %.max_index14 = load i32* %.max_index_ptr13 ; [#uses=2] %.buffer_offset_ptr15 = getelementptr %pipe_vertex_buffer* %58, i32 0, i32 2 ; [#uses=1] %.buffer_offset16 = load i32* %.buffer_offset_ptr15 ; [#uses=1] %60 = icmp ule i32 %57, %.max_index14 ; [#uses=1] %61 = select i1 %60, i32 %57, i32 %.max_index14 ; [#uses=1] %62 = mul i32 %.stride12, %61 ; [#uses=1] %vbuffer17 = load i8** %59 ; [#uses=1] %63 = add i32 %62, %.buffer_offset16 ; [#uses=1] %64 = add i32 %63, 0 ; [#uses=1] %65 = getelementptr i8* %vbuffer17, i32 %64 ; [#uses=2] %src_tmp18 = getelementptr i8* %65, i32 0 ; [#uses=1] %66 = bitcast i8* %src_tmp18 to float* ; [#uses=1] %67 = load float* %66 ; [#uses=1] %68 = insertelement <4 x float> zeroinitializer, float %67, i32 0 ; <<4 x float>> [#uses=1] %src_tmp19 = getelementptr i8* %65, i32 4 ; [#uses=1] %69 = bitcast i8* %src_tmp19 to float* ; [#uses=1] %70 = load float* %69 ; [#uses=1] %71 = insertelement <4 x float> %68, float %70, i32 1 ; <<4 x float>> [#uses=1] %72 = insertelement <4 x float> %71, float 0.000000e+00, i32 2 ; <<4 x float>> [#uses=1] %73 = insertelement <4 x float> %72, float 1.000000e+00, i32 3 ; <<4 x float>> [#uses=4] %74 = getelementptr %pipe_vertex_buffer* %vb, i32 0 ; <%pipe_vertex_buffer*> [#uses=3] %75 = getelementptr i8** %vbuffers, i64 0 ; [#uses=1] %.stride_ptr20 = getelementptr %pipe_vertex_buffer* %74, i32 0, i32 0 ; [#uses=1] %.stride21 = load i32* %.stride_ptr20 ; [#uses=1] %.max_index_ptr22 = getelementptr %pipe_vertex_buffer* %74, i32 0, i32 1 ; [#uses=1] %.max_index23 = load i32* %.max_index_ptr22 ; [#uses=2] %.buffer_offset_ptr24 = getelementptr %pipe_vertex_buffer* %74, i32 0, i32 2 ; [#uses=1] %.buffer_offset25 = load i32* %.buffer_offset_ptr24 ; [#uses=1] %76 = icmp ule i32 %57, %.max_index23 ; [#uses=1] %77 = select i1 %76, i32 %57, i32 %.max_index23 ; [#uses=1] %78 = mul i32 %.stride21, %77 ; [#uses=1] %vbuffer26 = load i8** %75 ; [#uses=1] %79 = add i32 %78, %.buffer_offset25 ; [#uses=1] %80 = add i32 %79, 8 ; [#uses=1] %81 = getelementptr i8* %vbuffer26, i32 %80 ; [#uses=2] %src_tmp27 = getelementptr i8* %81, i32 0 ; [#uses=1] %82 = bitcast i8* %src_tmp27 to float* ; [#uses=1] %83 = load float* %82 ; [#uses=1] %84 = insertelement <4 x float> zeroinitializer, float %83, i32 0 ; <<4 x float>> [#uses=1] %src_tmp28 = getelementptr i8* %81, i32 4 ; [#uses=1] %85 = bitcast i8* %src_tmp28 to float* ; [#uses=1] %86 = load float* %85 ; [#uses=1] %87 = insertelement <4 x float> %84, float %86, i32 1 ; <<4 x float>> [#uses=1] %88 = insertelement <4 x float> %87, float 0.000000e+00, i32 2 ; <<4 x float>> [#uses=1] %89 = insertelement <4 x float> %88, float 1.000000e+00, i32 3 ; <<4 x float>> [#uses=4] %90 = add i32 %21, 2 ; [#uses=4] %91 = getelementptr %pipe_vertex_buffer* %vb, i32 0 ; <%pipe_vertex_buffer*> [#uses=3] %92 = getelementptr i8** %vbuffers, i64 0 ; [#uses=1] %.stride_ptr29 = getelementptr %pipe_vertex_buffer* %91, i32 0, i32 0 ; [#uses=1] %.stride30 = load i32* %.stride_ptr29 ; [#uses=1] %.max_index_ptr31 = getelementptr %pipe_vertex_buffer* %91, i32 0, i32 1 ; [#uses=1] %.max_index32 = load i32* %.max_index_ptr31 ; [#uses=2] %.buffer_offset_ptr33 = getelementptr %pipe_vertex_buffer* %91, i32 0, i32 2 ; [#uses=1] %.buffer_offset34 = load i32* %.buffer_offset_ptr33 ; [#uses=1] %93 = icmp ule i32 %90, %.max_index32 ; [#uses=1] %94 = select i1 %93, i32 %90, i32 %.max_index32 ; [#uses=1] %95 = mul i32 %.stride30, %94 ; [#uses=1] %vbuffer35 = load i8** %92 ; [#uses=1] %96 = add i32 %95, %.buffer_offset34 ; [#uses=1] %97 = add i32 %96, 0 ; [#uses=1] %98 = getelementptr i8* %vbuffer35, i32 %97 ; [#uses=2] %src_tmp36 = getelementptr i8* %98, i32 0 ; [#uses=1] %99 = bitcast i8* %src_tmp36 to float* ; [#uses=1] %100 = load float* %99 ; [#uses=1] %101 = insertelement <4 x float> zeroinitializer, float %100, i32 0 ; <<4 x float>> [#uses=1] %src_tmp37 = getelementptr i8* %98, i32 4 ; [#uses=1] %102 = bitcast i8* %src_tmp37 to float* ; [#uses=1] %103 = load float* %102 ; [#uses=1] %104 = insertelement <4 x float> %101, float %103, i32 1 ; <<4 x float>> [#uses=1] %105 = insertelement <4 x float> %104, float 0.000000e+00, i32 2 ; <<4 x float>> [#uses=1] %106 = insertelement <4 x float> %105, float 1.000000e+00, i32 3 ; <<4 x float>> [#uses=4] %107 = getelementptr %pipe_vertex_buffer* %vb, i32 0 ; <%pipe_vertex_buffer*> [#uses=3] %108 = getelementptr i8** %vbuffers, i64 0 ; [#uses=1] %.stride_ptr38 = getelementptr %pipe_vertex_buffer* %107, i32 0, i32 0 ; [#uses=1] %.stride39 = load i32* %.stride_ptr38 ; [#uses=1] %.max_index_ptr40 = getelementptr %pipe_vertex_buffer* %107, i32 0, i32 1 ; [#uses=1] %.max_index41 = load i32* %.max_index_ptr40 ; [#uses=2] %.buffer_offset_ptr42 = getelementptr %pipe_vertex_buffer* %107, i32 0, i32 2 ; [#uses=1] %.buffer_offset43 = load i32* %.buffer_offset_ptr42 ; [#uses=1] %109 = icmp ule i32 %90, %.max_index41 ; [#uses=1] %110 = select i1 %109, i32 %90, i32 %.max_index41 ; [#uses=1] %111 = mul i32 %.stride39, %110 ; [#uses=1] %vbuffer44 = load i8** %108 ; [#uses=1] %112 = add i32 %111, %.buffer_offset43 ; [#uses=1] %113 = add i32 %112, 8 ; [#uses=1] %114 = getelementptr i8* %vbuffer44, i32 %113 ; [#uses=2] %src_tmp45 = getelementptr i8* %114, i32 0 ; [#uses=1] %115 = bitcast i8* %src_tmp45 to float* ; [#uses=1] %116 = load float* %115 ; [#uses=1] %117 = insertelement <4 x float> zeroinitializer, float %116, i32 0 ; <<4 x float>> [#uses=1] %src_tmp46 = getelementptr i8* %114, i32 4 ; [#uses=1] %118 = bitcast i8* %src_tmp46 to float* ; [#uses=1] %119 = load float* %118 ; [#uses=1] %120 = insertelement <4 x float> %117, float %119, i32 1 ; <<4 x float>> [#uses=1] %121 = insertelement <4 x float> %120, float 0.000000e+00, i32 2 ; <<4 x float>> [#uses=1] %122 = insertelement <4 x float> %121, float 1.000000e+00, i32 3 ; <<4 x float>> [#uses=4] %123 = add i32 %21, 3 ; [#uses=4] %124 = getelementptr %pipe_vertex_buffer* %vb, i32 0 ; <%pipe_vertex_buffer*> [#uses=3] %125 = getelementptr i8** %vbuffers, i64 0 ; [#uses=1] %.stride_ptr47 = getelementptr %pipe_vertex_buffer* %124, i32 0, i32 0 ; [#uses=1] %.stride48 = load i32* %.stride_ptr47 ; [#uses=1] %.max_index_ptr49 = getelementptr %pipe_vertex_buffer* %124, i32 0, i32 1 ; [#uses=1] %.max_index50 = load i32* %.max_index_ptr49 ; [#uses=2] %.buffer_offset_ptr51 = getelementptr %pipe_vertex_buffer* %124, i32 0, i32 2 ; [#uses=1] %.buffer_offset52 = load i32* %.buffer_offset_ptr51 ; [#uses=1] %126 = icmp ule i32 %123, %.max_index50 ; [#uses=1] %127 = select i1 %126, i32 %123, i32 %.max_index50 ; [#uses=1] %128 = mul i32 %.stride48, %127 ; [#uses=1] %vbuffer53 = load i8** %125 ; [#uses=1] %129 = add i32 %128, %.buffer_offset52 ; [#uses=1] %130 = add i32 %129, 0 ; [#uses=1] %131 = getelementptr i8* %vbuffer53, i32 %130 ; [#uses=2] %src_tmp54 = getelementptr i8* %131, i32 0 ; [#uses=1] %132 = bitcast i8* %src_tmp54 to float* ; [#uses=1] %133 = load float* %132 ; [#uses=1] %134 = insertelement <4 x float> zeroinitializer, float %133, i32 0 ; <<4 x float>> [#uses=1] %src_tmp55 = getelementptr i8* %131, i32 4 ; [#uses=1] %135 = bitcast i8* %src_tmp55 to float* ; [#uses=1] %136 = load float* %135 ; [#uses=1] %137 = insertelement <4 x float> %134, float %136, i32 1 ; <<4 x float>> [#uses=1] %138 = insertelement <4 x float> %137, float 0.000000e+00, i32 2 ; <<4 x float>> [#uses=1] %139 = insertelement <4 x float> %138, float 1.000000e+00, i32 3 ; <<4 x float>> [#uses=4] %140 = getelementptr %pipe_vertex_buffer* %vb, i32 0 ; <%pipe_vertex_buffer*> [#uses=3] %141 = getelementptr i8** %vbuffers, i64 0 ; [#uses=1] %.stride_ptr56 = getelementptr %pipe_vertex_buffer* %140, i32 0, i32 0 ; [#uses=1] %.stride57 = load i32* %.stride_ptr56 ; [#uses=1] %.max_index_ptr58 = getelementptr %pipe_vertex_buffer* %140, i32 0, i32 1 ; [#uses=1] %.max_index59 = load i32* %.max_index_ptr58 ; [#uses=2] %.buffer_offset_ptr60 = getelementptr %pipe_vertex_buffer* %140, i32 0, i32 2 ; [#uses=1] %.buffer_offset61 = load i32* %.buffer_offset_ptr60 ; [#uses=1] %142 = icmp ule i32 %123, %.max_index59 ; [#uses=1] %143 = select i1 %142, i32 %123, i32 %.max_index59 ; [#uses=1] %144 = mul i32 %.stride57, %143 ; [#uses=1] %vbuffer62 = load i8** %141 ; [#uses=1] %145 = add i32 %144, %.buffer_offset61 ; [#uses=1] %146 = add i32 %145, 8 ; [#uses=1] %147 = getelementptr i8* %vbuffer62, i32 %146 ; [#uses=2] %src_tmp63 = getelementptr i8* %147, i32 0 ; [#uses=1] %148 = bitcast i8* %src_tmp63 to float* ; [#uses=1] %149 = load float* %148 ; [#uses=1] %150 = insertelement <4 x float> zeroinitializer, float %149, i32 0 ; <<4 x float>> [#uses=1] %src_tmp64 = getelementptr i8* %147, i32 4 ; [#uses=1] %151 = bitcast i8* %src_tmp64 to float* ; [#uses=1] %152 = load float* %151 ; [#uses=1] %153 = insertelement <4 x float> %150, float %152, i32 1 ; <<4 x float>> [#uses=1] %154 = insertelement <4 x float> %153, float 0.000000e+00, i32 2 ; <<4 x float>> [#uses=1] %155 = insertelement <4 x float> %154, float 1.000000e+00, i32 3 ; <<4 x float>> [#uses=4] %156 = extractelement <4 x float> %40, i32 0 ; [#uses=1] %157 = insertelement <4 x float> zeroinitializer, float %156, i32 0 ; <<4 x float>> [#uses=1] %158 = extractelement <4 x float> %73, i32 0 ; [#uses=1] %159 = insertelement <4 x float> %157, float %158, i32 1 ; <<4 x float>> [#uses=1] %160 = extractelement <4 x float> %106, i32 0 ; [#uses=1] %161 = insertelement <4 x float> %159, float %160, i32 2 ; <<4 x float>> [#uses=1] %162 = extractelement <4 x float> %139, i32 0 ; [#uses=1] %163 = insertelement <4 x float> %161, float %162, i32 3 ; <<4 x float>> [#uses=4] %164 = extractelement <4 x float> %40, i32 1 ; [#uses=1] %165 = insertelement <4 x float> zeroinitializer, float %164, i32 0 ; <<4 x float>> [#uses=1] %166 = extractelement <4 x float> %73, i32 1 ; [#uses=1] %167 = insertelement <4 x float> %165, float %166, i32 1 ; <<4 x float>> [#uses=1] %168 = extractelement <4 x float> %106, i32 1 ; [#uses=1] %169 = insertelement <4 x float> %167, float %168, i32 2 ; <<4 x float>> [#uses=1] %170 = extractelement <4 x float> %139, i32 1 ; [#uses=1] %171 = insertelement <4 x float> %169, float %170, i32 3 ; <<4 x float>> [#uses=4] %172 = extractelement <4 x float> %40, i32 2 ; [#uses=1] %173 = insertelement <4 x float> zeroinitializer, float %172, i32 0 ; <<4 x float>> [#uses=1] %174 = extractelement <4 x float> %73, i32 2 ; [#uses=1] %175 = insertelement <4 x float> %173, float %174, i32 1 ; <<4 x float>> [#uses=1] %176 = extractelement <4 x float> %106, i32 2 ; [#uses=1] %177 = insertelement <4 x float> %175, float %176, i32 2 ; <<4 x float>> [#uses=1] %178 = extractelement <4 x float> %139, i32 2 ; [#uses=1] %179 = insertelement <4 x float> %177, float %178, i32 3 ; <<4 x float>> [#uses=4] %180 = extractelement <4 x float> %40, i32 3 ; [#uses=1] %181 = insertelement <4 x float> zeroinitializer, float %180, i32 0 ; <<4 x float>> [#uses=1] %182 = extractelement <4 x float> %73, i32 3 ; [#uses=1] %183 = insertelement <4 x float> %181, float %182, i32 1 ; <<4 x float>> [#uses=1] %184 = extractelement <4 x float> %106, i32 3 ; [#uses=1] %185 = insertelement <4 x float> %183, float %184, i32 2 ; <<4 x float>> [#uses=1] %186 = extractelement <4 x float> %139, i32 3 ; [#uses=1] %187 = insertelement <4 x float> %185, float %186, i32 3 ; <<4 x float>> [#uses=4] %188 = extractelement <4 x float> %56, i32 0 ; [#uses=1] %189 = insertelement <4 x float> zeroinitializer, float %188, i32 0 ; <<4 x float>> [#uses=1] %190 = extractelement <4 x float> %89, i32 0 ; [#uses=1] %191 = insertelement <4 x float> %189, float %190, i32 1 ; <<4 x float>> [#uses=1] %192 = extractelement <4 x float> %122, i32 0 ; [#uses=1] %193 = insertelement <4 x float> %191, float %192, i32 2 ; <<4 x float>> [#uses=1] %194 = extractelement <4 x float> %155, i32 0 ; [#uses=1] %195 = insertelement <4 x float> %193, float %194, i32 3 ; <<4 x float>> [#uses=1] %196 = extractelement <4 x float> %56, i32 1 ; [#uses=1] %197 = insertelement <4 x float> zeroinitializer, float %196, i32 0 ; <<4 x float>> [#uses=1] %198 = extractelement <4 x float> %89, i32 1 ; [#uses=1] %199 = insertelement <4 x float> %197, float %198, i32 1 ; <<4 x float>> [#uses=1] %200 = extractelement <4 x float> %122, i32 1 ; [#uses=1] %201 = insertelement <4 x float> %199, float %200, i32 2 ; <<4 x float>> [#uses=1] %202 = extractelement <4 x float> %155, i32 1 ; [#uses=1] %203 = insertelement <4 x float> %201, float %202, i32 3 ; <<4 x float>> [#uses=1] %204 = extractelement <4 x float> %56, i32 2 ; [#uses=1] %205 = insertelement <4 x float> zeroinitializer, float %204, i32 0 ; <<4 x float>> [#uses=1] %206 = extractelement <4 x float> %89, i32 2 ; [#uses=1] %207 = insertelement <4 x float> %205, float %206, i32 1 ; <<4 x float>> [#uses=1] %208 = extractelement <4 x float> %122, i32 2 ; [#uses=1] %209 = insertelement <4 x float> %207, float %208, i32 2 ; <<4 x float>> [#uses=1] %210 = extractelement <4 x float> %155, i32 2 ; [#uses=1] %211 = insertelement <4 x float> %209, float %210, i32 3 ; <<4 x float>> [#uses=1] %212 = extractelement <4 x float> %56, i32 3 ; [#uses=1] %213 = insertelement <4 x float> zeroinitializer, float %212, i32 0 ; <<4 x float>> [#uses=1] %214 = extractelement <4 x float> %89, i32 3 ; [#uses=1] %215 = insertelement <4 x float> %213, float %214, i32 1 ; <<4 x float>> [#uses=1] %216 = extractelement <4 x float> %122, i32 3 ; [#uses=1] %217 = insertelement <4 x float> %215, float %216, i32 2 ; <<4 x float>> [#uses=1] %218 = extractelement <4 x float> %155, i32 3 ; [#uses=1] %219 = insertelement <4 x float> %217, float %218, i32 3 ; <<4 x float>> [#uses=1] %context.vs_constants_ptr = getelementptr %draw_jit_context* %context, i32 0, i32 0 ; [#uses=1] %context.vs_constants = load float** %context.vs_constants_ptr ; [#uses=16] %220 = getelementptr float* %context.vs_constants, i32 0 ; [#uses=1] %221 = load float* %220 ; [#uses=1] %222 = insertelement <4 x float> undef, float %221, i32 0 ; <<4 x float>> [#uses=1] %223 = shufflevector <4 x float> %222, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %224 = mul <4 x float> %163, %223 ; <<4 x float>> [#uses=1] %225 = getelementptr float* %context.vs_constants, i32 1 ; [#uses=1] %226 = load float* %225 ; [#uses=1] %227 = insertelement <4 x float> undef, float %226, i32 0 ; <<4 x float>> [#uses=1] %228 = shufflevector <4 x float> %227, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %229 = mul <4 x float> %163, %228 ; <<4 x float>> [#uses=1] %230 = getelementptr float* %context.vs_constants, i32 2 ; [#uses=1] %231 = load float* %230 ; [#uses=1] %232 = insertelement <4 x float> undef, float %231, i32 0 ; <<4 x float>> [#uses=1] %233 = shufflevector <4 x float> %232, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %234 = mul <4 x float> %163, %233 ; <<4 x float>> [#uses=1] %235 = getelementptr float* %context.vs_constants, i32 3 ; [#uses=1] %236 = load float* %235 ; [#uses=1] %237 = insertelement <4 x float> undef, float %236, i32 0 ; <<4 x float>> [#uses=1] %238 = shufflevector <4 x float> %237, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %239 = mul <4 x float> %163, %238 ; <<4 x float>> [#uses=1] store <4 x float> %224, <4 x float>* %11 store <4 x float> %229, <4 x float>* %10 store <4 x float> %234, <4 x float>* %9 store <4 x float> %239, <4 x float>* %8 %240 = getelementptr float* %context.vs_constants, i32 4 ; [#uses=1] %241 = load float* %240 ; [#uses=1] %242 = insertelement <4 x float> undef, float %241, i32 0 ; <<4 x float>> [#uses=1] %243 = shufflevector <4 x float> %242, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %244 = load <4 x float>* %11 ; <<4 x float>> [#uses=1] %245 = mul <4 x float> %171, %243 ; <<4 x float>> [#uses=1] %246 = add <4 x float> %245, %244 ; <<4 x float>> [#uses=1] %247 = getelementptr float* %context.vs_constants, i32 5 ; [#uses=1] %248 = load float* %247 ; [#uses=1] %249 = insertelement <4 x float> undef, float %248, i32 0 ; <<4 x float>> [#uses=1] %250 = shufflevector <4 x float> %249, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %251 = load <4 x float>* %10 ; <<4 x float>> [#uses=1] %252 = mul <4 x float> %171, %250 ; <<4 x float>> [#uses=1] %253 = add <4 x float> %252, %251 ; <<4 x float>> [#uses=1] %254 = getelementptr float* %context.vs_constants, i32 6 ; [#uses=1] %255 = load float* %254 ; [#uses=1] %256 = insertelement <4 x float> undef, float %255, i32 0 ; <<4 x float>> [#uses=1] %257 = shufflevector <4 x float> %256, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %258 = load <4 x float>* %9 ; <<4 x float>> [#uses=1] %259 = mul <4 x float> %171, %257 ; <<4 x float>> [#uses=1] %260 = add <4 x float> %259, %258 ; <<4 x float>> [#uses=1] %261 = getelementptr float* %context.vs_constants, i32 7 ; [#uses=1] %262 = load float* %261 ; [#uses=1] %263 = insertelement <4 x float> undef, float %262, i32 0 ; <<4 x float>> [#uses=1] %264 = shufflevector <4 x float> %263, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %265 = load <4 x float>* %8 ; <<4 x float>> [#uses=1] %266 = mul <4 x float> %171, %264 ; <<4 x float>> [#uses=1] %267 = add <4 x float> %266, %265 ; <<4 x float>> [#uses=1] store <4 x float> %246, <4 x float>* %11 store <4 x float> %253, <4 x float>* %10 store <4 x float> %260, <4 x float>* %9 store <4 x float> %267, <4 x float>* %8 %268 = getelementptr float* %context.vs_constants, i32 8 ; [#uses=1] %269 = load float* %268 ; [#uses=1] %270 = insertelement <4 x float> undef, float %269, i32 0 ; <<4 x float>> [#uses=1] %271 = shufflevector <4 x float> %270, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %272 = load <4 x float>* %11 ; <<4 x float>> [#uses=1] %273 = mul <4 x float> %179, %271 ; <<4 x float>> [#uses=1] %274 = add <4 x float> %273, %272 ; <<4 x float>> [#uses=1] %275 = getelementptr float* %context.vs_constants, i32 9 ; [#uses=1] %276 = load float* %275 ; [#uses=1] %277 = insertelement <4 x float> undef, float %276, i32 0 ; <<4 x float>> [#uses=1] %278 = shufflevector <4 x float> %277, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %279 = load <4 x float>* %10 ; <<4 x float>> [#uses=1] %280 = mul <4 x float> %179, %278 ; <<4 x float>> [#uses=1] %281 = add <4 x float> %280, %279 ; <<4 x float>> [#uses=1] %282 = getelementptr float* %context.vs_constants, i32 10 ; [#uses=1] %283 = load float* %282 ; [#uses=1] %284 = insertelement <4 x float> undef, float %283, i32 0 ; <<4 x float>> [#uses=1] %285 = shufflevector <4 x float> %284, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %286 = load <4 x float>* %9 ; <<4 x float>> [#uses=1] %287 = mul <4 x float> %179, %285 ; <<4 x float>> [#uses=1] %288 = add <4 x float> %287, %286 ; <<4 x float>> [#uses=1] %289 = getelementptr float* %context.vs_constants, i32 11 ; [#uses=1] %290 = load float* %289 ; [#uses=1] %291 = insertelement <4 x float> undef, float %290, i32 0 ; <<4 x float>> [#uses=1] %292 = shufflevector <4 x float> %291, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %293 = load <4 x float>* %8 ; <<4 x float>> [#uses=1] %294 = mul <4 x float> %179, %292 ; <<4 x float>> [#uses=1] %295 = add <4 x float> %294, %293 ; <<4 x float>> [#uses=1] store <4 x float> %274, <4 x float>* %11 store <4 x float> %281, <4 x float>* %10 store <4 x float> %288, <4 x float>* %9 store <4 x float> %295, <4 x float>* %8 %296 = getelementptr float* %context.vs_constants, i32 12 ; [#uses=1] %297 = load float* %296 ; [#uses=1] %298 = insertelement <4 x float> undef, float %297, i32 0 ; <<4 x float>> [#uses=1] %299 = shufflevector <4 x float> %298, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %300 = load <4 x float>* %11 ; <<4 x float>> [#uses=1] %301 = mul <4 x float> %187, %299 ; <<4 x float>> [#uses=1] %302 = add <4 x float> %301, %300 ; <<4 x float>> [#uses=1] %303 = getelementptr float* %context.vs_constants, i32 13 ; [#uses=1] %304 = load float* %303 ; [#uses=1] %305 = insertelement <4 x float> undef, float %304, i32 0 ; <<4 x float>> [#uses=1] %306 = shufflevector <4 x float> %305, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %307 = load <4 x float>* %10 ; <<4 x float>> [#uses=1] %308 = mul <4 x float> %187, %306 ; <<4 x float>> [#uses=1] %309 = add <4 x float> %308, %307 ; <<4 x float>> [#uses=1] %310 = getelementptr float* %context.vs_constants, i32 14 ; [#uses=1] %311 = load float* %310 ; [#uses=1] %312 = insertelement <4 x float> undef, float %311, i32 0 ; <<4 x float>> [#uses=1] %313 = shufflevector <4 x float> %312, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %314 = load <4 x float>* %9 ; <<4 x float>> [#uses=1] %315 = mul <4 x float> %187, %313 ; <<4 x float>> [#uses=1] %316 = add <4 x float> %315, %314 ; <<4 x float>> [#uses=1] %317 = getelementptr float* %context.vs_constants, i32 15 ; [#uses=1] %318 = load float* %317 ; [#uses=1] %319 = insertelement <4 x float> undef, float %318, i32 0 ; <<4 x float>> [#uses=1] %320 = shufflevector <4 x float> %319, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %321 = load <4 x float>* %8 ; <<4 x float>> [#uses=1] %322 = mul <4 x float> %187, %320 ; <<4 x float>> [#uses=1] %323 = add <4 x float> %322, %321 ; <<4 x float>> [#uses=1] store <4 x float> %302, <4 x float>* %3 store <4 x float> %309, <4 x float>* %2 store <4 x float> %316, <4 x float>* %1 store <4 x float> %323, <4 x float>* %0 store <4 x float> %195, <4 x float>* %15 store <4 x float> %203, <4 x float>* %14 store <4 x float> %211, <4 x float>* %13 store <4 x float> %219, <4 x float>* %12 %324 = load <4 x float>* %3 ; <<4 x float>> [#uses=1] %325 = load <4 x float>* %2 ; <<4 x float>> [#uses=1] %326 = load <4 x float>* %1 ; <<4 x float>> [#uses=1] %327 = load <4 x float>* %0 ; <<4 x float>> [#uses=1] store <4 x float> %324, <4 x float>* %19 store <4 x float> %325, <4 x float>* %18 store <4 x float> %326, <4 x float>* %17 store <4 x float> %327, <4 x float>* %16 %328 = load <4 x float>* %3 ; <<4 x float>> [#uses=1] %329 = load <4 x float>* %2 ; <<4 x float>> [#uses=1] %330 = load <4 x float>* %1 ; <<4 x float>> [#uses=1] %331 = load <4 x float>* %0 ; <<4 x float>> [#uses=1] store <4 x float> %328, <4 x float>* %7 store <4 x float> %329, <4 x float>* %6 store <4 x float> %330, <4 x float>* %5 store <4 x float> %331, <4 x float>* %4 %output0.x = load <4 x float>* %19 ; <<4 x float>> [#uses=4] %output0.y = load <4 x float>* %18 ; <<4 x float>> [#uses=4] %output0.z = load <4 x float>* %17 ; <<4 x float>> [#uses=4] %output0.w = load <4 x float>* %16 ; <<4 x float>> [#uses=4] %332 = extractelement <4 x float> %output0.x, i32 0 ; [#uses=1] %333 = insertelement <4 x float> zeroinitializer, float %332, i32 0 ; <<4 x float>> [#uses=1] %334 = extractelement <4 x float> %output0.x, i32 1 ; [#uses=1] %335 = insertelement <4 x float> zeroinitializer, float %334, i32 0 ; <<4 x float>> [#uses=1] %336 = extractelement <4 x float> %output0.x, i32 2 ; [#uses=1] %337 = insertelement <4 x float> zeroinitializer, float %336, i32 0 ; <<4 x float>> [#uses=1] %338 = extractelement <4 x float> %output0.x, i32 3 ; [#uses=1] %339 = insertelement <4 x float> zeroinitializer, float %338, i32 0 ; <<4 x float>> [#uses=1] %340 = extractelement <4 x float> %output0.y, i32 0 ; [#uses=1] %341 = insertelement <4 x float> %333, float %340, i32 1 ; <<4 x float>> [#uses=1] %342 = extractelement <4 x float> %output0.y, i32 1 ; [#uses=1] %343 = insertelement <4 x float> %335, float %342, i32 1 ; <<4 x float>> [#uses=1] %344 = extractelement <4 x float> %output0.y, i32 2 ; [#uses=1] %345 = insertelement <4 x float> %337, float %344, i32 1 ; <<4 x float>> [#uses=1] %346 = extractelement <4 x float> %output0.y, i32 3 ; [#uses=1] %347 = insertelement <4 x float> %339, float %346, i32 1 ; <<4 x float>> [#uses=1] %348 = extractelement <4 x float> %output0.z, i32 0 ; [#uses=1] %349 = insertelement <4 x float> %341, float %348, i32 2 ; <<4 x float>> [#uses=1] %350 = extractelement <4 x float> %output0.z, i32 1 ; [#uses=1] %351 = insertelement <4 x float> %343, float %350, i32 2 ; <<4 x float>> [#uses=1] %352 = extractelement <4 x float> %output0.z, i32 2 ; [#uses=1] %353 = insertelement <4 x float> %345, float %352, i32 2 ; <<4 x float>> [#uses=1] %354 = extractelement <4 x float> %output0.z, i32 3 ; [#uses=1] %355 = insertelement <4 x float> %347, float %354, i32 2 ; <<4 x float>> [#uses=1] %356 = extractelement <4 x float> %output0.w, i32 0 ; [#uses=1] %357 = insertelement <4 x float> %349, float %356, i32 3 ; <<4 x float>> [#uses=4] %358 = extractelement <4 x float> %output0.w, i32 1 ; [#uses=1] %359 = insertelement <4 x float> %351, float %358, i32 3 ; <<4 x float>> [#uses=4] %360 = extractelement <4 x float> %output0.w, i32 2 ; [#uses=1] %361 = insertelement <4 x float> %353, float %360, i32 3 ; <<4 x float>> [#uses=4] %362 = extractelement <4 x float> %output0.w, i32 3 ; [#uses=1] %363 = insertelement <4 x float> %355, float %362, i32 3 ; <<4 x float>> [#uses=4] %364 = getelementptr %vertex_header4* %23, i32 0 ; <%vertex_header4*> [#uses=2] %365 = getelementptr %vertex_header4* %23, i32 1 ; <%vertex_header4*> [#uses=2] %366 = getelementptr %vertex_header4* %23, i32 2 ; <%vertex_header4*> [#uses=2] %367 = getelementptr %vertex_header4* %23, i32 3 ; <%vertex_header4*> [#uses=2] %.id_ptr = getelementptr %vertex_header4* %364, i32 0, i32 0 ; [#uses=1] %.data_ptr = getelementptr %vertex_header4* %364, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr %368 = getelementptr [4 x [4 x float]]* %.data_ptr, i32 0, i32 0, i32 0 ; [#uses=4] %369 = extractelement <4 x float> %357, i32 0 ; [#uses=1] %370 = extractelement <4 x float> %357, i32 1 ; [#uses=1] %371 = extractelement <4 x float> %357, i32 2 ; [#uses=1] %372 = extractelement <4 x float> %357, i32 3 ; [#uses=1] %373 = getelementptr float* %368, i32 0 ; [#uses=1] %374 = getelementptr float* %368, i32 1 ; [#uses=1] %375 = getelementptr float* %368, i32 2 ; [#uses=1] %376 = getelementptr float* %368, i32 3 ; [#uses=1] store float %369, float* %373 store float %370, float* %374 store float %371, float* %375 store float %372, float* %376 %.id_ptr65 = getelementptr %vertex_header4* %365, i32 0, i32 0 ; [#uses=1] %.data_ptr66 = getelementptr %vertex_header4* %365, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr65 %377 = getelementptr [4 x [4 x float]]* %.data_ptr66, i32 0, i32 0, i32 0 ; [#uses=4] %378 = extractelement <4 x float> %359, i32 0 ; [#uses=1] %379 = extractelement <4 x float> %359, i32 1 ; [#uses=1] %380 = extractelement <4 x float> %359, i32 2 ; [#uses=1] %381 = extractelement <4 x float> %359, i32 3 ; [#uses=1] %382 = getelementptr float* %377, i32 0 ; [#uses=1] %383 = getelementptr float* %377, i32 1 ; [#uses=1] %384 = getelementptr float* %377, i32 2 ; [#uses=1] %385 = getelementptr float* %377, i32 3 ; [#uses=1] store float %378, float* %382 store float %379, float* %383 store float %380, float* %384 store float %381, float* %385 %.id_ptr67 = getelementptr %vertex_header4* %366, i32 0, i32 0 ; [#uses=1] %.data_ptr68 = getelementptr %vertex_header4* %366, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr67 %386 = getelementptr [4 x [4 x float]]* %.data_ptr68, i32 0, i32 0, i32 0 ; [#uses=4] %387 = extractelement <4 x float> %361, i32 0 ; [#uses=1] %388 = extractelement <4 x float> %361, i32 1 ; [#uses=1] %389 = extractelement <4 x float> %361, i32 2 ; [#uses=1] %390 = extractelement <4 x float> %361, i32 3 ; [#uses=1] %391 = getelementptr float* %386, i32 0 ; [#uses=1] %392 = getelementptr float* %386, i32 1 ; [#uses=1] %393 = getelementptr float* %386, i32 2 ; [#uses=1] %394 = getelementptr float* %386, i32 3 ; [#uses=1] store float %387, float* %391 store float %388, float* %392 store float %389, float* %393 store float %390, float* %394 %.id_ptr69 = getelementptr %vertex_header4* %367, i32 0, i32 0 ; [#uses=1] %.data_ptr70 = getelementptr %vertex_header4* %367, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr69 %395 = getelementptr [4 x [4 x float]]* %.data_ptr70, i32 0, i32 0, i32 0 ; [#uses=4] %396 = extractelement <4 x float> %363, i32 0 ; [#uses=1] %397 = extractelement <4 x float> %363, i32 1 ; [#uses=1] %398 = extractelement <4 x float> %363, i32 2 ; [#uses=1] %399 = extractelement <4 x float> %363, i32 3 ; [#uses=1] %400 = getelementptr float* %395, i32 0 ; [#uses=1] %401 = getelementptr float* %395, i32 1 ; [#uses=1] %402 = getelementptr float* %395, i32 2 ; [#uses=1] %403 = getelementptr float* %395, i32 3 ; [#uses=1] store float %396, float* %400 store float %397, float* %401 store float %398, float* %402 store float %399, float* %403 %output1.x = load <4 x float>* %15 ; <<4 x float>> [#uses=4] %output1.y = load <4 x float>* %14 ; <<4 x float>> [#uses=4] %output1.z = load <4 x float>* %13 ; <<4 x float>> [#uses=4] %output1.w = load <4 x float>* %12 ; <<4 x float>> [#uses=4] %404 = extractelement <4 x float> %output1.x, i32 0 ; [#uses=1] %405 = insertelement <4 x float> zeroinitializer, float %404, i32 0 ; <<4 x float>> [#uses=1] %406 = extractelement <4 x float> %output1.x, i32 1 ; [#uses=1] %407 = insertelement <4 x float> zeroinitializer, float %406, i32 0 ; <<4 x float>> [#uses=1] %408 = extractelement <4 x float> %output1.x, i32 2 ; [#uses=1] %409 = insertelement <4 x float> zeroinitializer, float %408, i32 0 ; <<4 x float>> [#uses=1] %410 = extractelement <4 x float> %output1.x, i32 3 ; [#uses=1] %411 = insertelement <4 x float> zeroinitializer, float %410, i32 0 ; <<4 x float>> [#uses=1] %412 = extractelement <4 x float> %output1.y, i32 0 ; [#uses=1] %413 = insertelement <4 x float> %405, float %412, i32 1 ; <<4 x float>> [#uses=1] %414 = extractelement <4 x float> %output1.y, i32 1 ; [#uses=1] %415 = insertelement <4 x float> %407, float %414, i32 1 ; <<4 x float>> [#uses=1] %416 = extractelement <4 x float> %output1.y, i32 2 ; [#uses=1] %417 = insertelement <4 x float> %409, float %416, i32 1 ; <<4 x float>> [#uses=1] %418 = extractelement <4 x float> %output1.y, i32 3 ; [#uses=1] %419 = insertelement <4 x float> %411, float %418, i32 1 ; <<4 x float>> [#uses=1] %420 = extractelement <4 x float> %output1.z, i32 0 ; [#uses=1] %421 = insertelement <4 x float> %413, float %420, i32 2 ; <<4 x float>> [#uses=1] %422 = extractelement <4 x float> %output1.z, i32 1 ; [#uses=1] %423 = insertelement <4 x float> %415, float %422, i32 2 ; <<4 x float>> [#uses=1] %424 = extractelement <4 x float> %output1.z, i32 2 ; [#uses=1] %425 = insertelement <4 x float> %417, float %424, i32 2 ; <<4 x float>> [#uses=1] %426 = extractelement <4 x float> %output1.z, i32 3 ; [#uses=1] %427 = insertelement <4 x float> %419, float %426, i32 2 ; <<4 x float>> [#uses=1] %428 = extractelement <4 x float> %output1.w, i32 0 ; [#uses=1] %429 = insertelement <4 x float> %421, float %428, i32 3 ; <<4 x float>> [#uses=4] %430 = extractelement <4 x float> %output1.w, i32 1 ; [#uses=1] %431 = insertelement <4 x float> %423, float %430, i32 3 ; <<4 x float>> [#uses=4] %432 = extractelement <4 x float> %output1.w, i32 2 ; [#uses=1] %433 = insertelement <4 x float> %425, float %432, i32 3 ; <<4 x float>> [#uses=4] %434 = extractelement <4 x float> %output1.w, i32 3 ; [#uses=1] %435 = insertelement <4 x float> %427, float %434, i32 3 ; <<4 x float>> [#uses=4] %436 = getelementptr %vertex_header4* %23, i32 0 ; <%vertex_header4*> [#uses=2] %437 = getelementptr %vertex_header4* %23, i32 1 ; <%vertex_header4*> [#uses=2] %438 = getelementptr %vertex_header4* %23, i32 2 ; <%vertex_header4*> [#uses=2] %439 = getelementptr %vertex_header4* %23, i32 3 ; <%vertex_header4*> [#uses=2] %.id_ptr71 = getelementptr %vertex_header4* %436, i32 0, i32 0 ; [#uses=1] %.data_ptr72 = getelementptr %vertex_header4* %436, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr71 %440 = getelementptr [4 x [4 x float]]* %.data_ptr72, i32 0, i32 1, i32 0 ; [#uses=4] %441 = extractelement <4 x float> %429, i32 0 ; [#uses=1] %442 = extractelement <4 x float> %429, i32 1 ; [#uses=1] %443 = extractelement <4 x float> %429, i32 2 ; [#uses=1] %444 = extractelement <4 x float> %429, i32 3 ; [#uses=1] %445 = getelementptr float* %440, i32 0 ; [#uses=1] %446 = getelementptr float* %440, i32 1 ; [#uses=1] %447 = getelementptr float* %440, i32 2 ; [#uses=1] %448 = getelementptr float* %440, i32 3 ; [#uses=1] store float %441, float* %445 store float %442, float* %446 store float %443, float* %447 store float %444, float* %448 %.id_ptr73 = getelementptr %vertex_header4* %437, i32 0, i32 0 ; [#uses=1] %.data_ptr74 = getelementptr %vertex_header4* %437, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr73 %449 = getelementptr [4 x [4 x float]]* %.data_ptr74, i32 0, i32 1, i32 0 ; [#uses=4] %450 = extractelement <4 x float> %431, i32 0 ; [#uses=1] %451 = extractelement <4 x float> %431, i32 1 ; [#uses=1] %452 = extractelement <4 x float> %431, i32 2 ; [#uses=1] %453 = extractelement <4 x float> %431, i32 3 ; [#uses=1] %454 = getelementptr float* %449, i32 0 ; [#uses=1] %455 = getelementptr float* %449, i32 1 ; [#uses=1] %456 = getelementptr float* %449, i32 2 ; [#uses=1] %457 = getelementptr float* %449, i32 3 ; [#uses=1] store float %450, float* %454 store float %451, float* %455 store float %452, float* %456 store float %453, float* %457 %.id_ptr75 = getelementptr %vertex_header4* %438, i32 0, i32 0 ; [#uses=1] %.data_ptr76 = getelementptr %vertex_header4* %438, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr75 %458 = getelementptr [4 x [4 x float]]* %.data_ptr76, i32 0, i32 1, i32 0 ; [#uses=4] %459 = extractelement <4 x float> %433, i32 0 ; [#uses=1] %460 = extractelement <4 x float> %433, i32 1 ; [#uses=1] %461 = extractelement <4 x float> %433, i32 2 ; [#uses=1] %462 = extractelement <4 x float> %433, i32 3 ; [#uses=1] %463 = getelementptr float* %458, i32 0 ; [#uses=1] %464 = getelementptr float* %458, i32 1 ; [#uses=1] %465 = getelementptr float* %458, i32 2 ; [#uses=1] %466 = getelementptr float* %458, i32 3 ; [#uses=1] store float %459, float* %463 store float %460, float* %464 store float %461, float* %465 store float %462, float* %466 %.id_ptr77 = getelementptr %vertex_header4* %439, i32 0, i32 0 ; [#uses=1] %.data_ptr78 = getelementptr %vertex_header4* %439, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr77 %467 = getelementptr [4 x [4 x float]]* %.data_ptr78, i32 0, i32 1, i32 0 ; [#uses=4] %468 = extractelement <4 x float> %435, i32 0 ; [#uses=1] %469 = extractelement <4 x float> %435, i32 1 ; [#uses=1] %470 = extractelement <4 x float> %435, i32 2 ; [#uses=1] %471 = extractelement <4 x float> %435, i32 3 ; [#uses=1] %472 = getelementptr float* %467, i32 0 ; [#uses=1] %473 = getelementptr float* %467, i32 1 ; [#uses=1] %474 = getelementptr float* %467, i32 2 ; [#uses=1] %475 = getelementptr float* %467, i32 3 ; [#uses=1] store float %468, float* %472 store float %469, float* %473 store float %470, float* %474 store float %471, float* %475 %output2.x = load <4 x float>* %7 ; <<4 x float>> [#uses=4] %output2.y = load <4 x float>* %6 ; <<4 x float>> [#uses=4] %output2.z = load <4 x float>* %5 ; <<4 x float>> [#uses=4] %output2.w = load <4 x float>* %4 ; <<4 x float>> [#uses=4] %476 = extractelement <4 x float> %output2.x, i32 0 ; [#uses=1] %477 = insertelement <4 x float> zeroinitializer, float %476, i32 0 ; <<4 x float>> [#uses=1] %478 = extractelement <4 x float> %output2.x, i32 1 ; [#uses=1] %479 = insertelement <4 x float> zeroinitializer, float %478, i32 0 ; <<4 x float>> [#uses=1] %480 = extractelement <4 x float> %output2.x, i32 2 ; [#uses=1] %481 = insertelement <4 x float> zeroinitializer, float %480, i32 0 ; <<4 x float>> [#uses=1] %482 = extractelement <4 x float> %output2.x, i32 3 ; [#uses=1] %483 = insertelement <4 x float> zeroinitializer, float %482, i32 0 ; <<4 x float>> [#uses=1] %484 = extractelement <4 x float> %output2.y, i32 0 ; [#uses=1] %485 = insertelement <4 x float> %477, float %484, i32 1 ; <<4 x float>> [#uses=1] %486 = extractelement <4 x float> %output2.y, i32 1 ; [#uses=1] %487 = insertelement <4 x float> %479, float %486, i32 1 ; <<4 x float>> [#uses=1] %488 = extractelement <4 x float> %output2.y, i32 2 ; [#uses=1] %489 = insertelement <4 x float> %481, float %488, i32 1 ; <<4 x float>> [#uses=1] %490 = extractelement <4 x float> %output2.y, i32 3 ; [#uses=1] %491 = insertelement <4 x float> %483, float %490, i32 1 ; <<4 x float>> [#uses=1] %492 = extractelement <4 x float> %output2.z, i32 0 ; [#uses=1] %493 = insertelement <4 x float> %485, float %492, i32 2 ; <<4 x float>> [#uses=1] %494 = extractelement <4 x float> %output2.z, i32 1 ; [#uses=1] %495 = insertelement <4 x float> %487, float %494, i32 2 ; <<4 x float>> [#uses=1] %496 = extractelement <4 x float> %output2.z, i32 2 ; [#uses=1] %497 = insertelement <4 x float> %489, float %496, i32 2 ; <<4 x float>> [#uses=1] %498 = extractelement <4 x float> %output2.z, i32 3 ; [#uses=1] %499 = insertelement <4 x float> %491, float %498, i32 2 ; <<4 x float>> [#uses=1] %500 = extractelement <4 x float> %output2.w, i32 0 ; [#uses=1] %501 = insertelement <4 x float> %493, float %500, i32 3 ; <<4 x float>> [#uses=4] %502 = extractelement <4 x float> %output2.w, i32 1 ; [#uses=1] %503 = insertelement <4 x float> %495, float %502, i32 3 ; <<4 x float>> [#uses=4] %504 = extractelement <4 x float> %output2.w, i32 2 ; [#uses=1] %505 = insertelement <4 x float> %497, float %504, i32 3 ; <<4 x float>> [#uses=4] %506 = extractelement <4 x float> %output2.w, i32 3 ; [#uses=1] %507 = insertelement <4 x float> %499, float %506, i32 3 ; <<4 x float>> [#uses=4] %508 = getelementptr %vertex_header4* %23, i32 0 ; <%vertex_header4*> [#uses=2] %509 = getelementptr %vertex_header4* %23, i32 1 ; <%vertex_header4*> [#uses=2] %510 = getelementptr %vertex_header4* %23, i32 2 ; <%vertex_header4*> [#uses=2] %511 = getelementptr %vertex_header4* %23, i32 3 ; <%vertex_header4*> [#uses=2] %.id_ptr79 = getelementptr %vertex_header4* %508, i32 0, i32 0 ; [#uses=1] %.data_ptr80 = getelementptr %vertex_header4* %508, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr79 %512 = getelementptr [4 x [4 x float]]* %.data_ptr80, i32 0, i32 2, i32 0 ; [#uses=4] %513 = extractelement <4 x float> %501, i32 0 ; [#uses=1] %514 = extractelement <4 x float> %501, i32 1 ; [#uses=1] %515 = extractelement <4 x float> %501, i32 2 ; [#uses=1] %516 = extractelement <4 x float> %501, i32 3 ; [#uses=1] %517 = getelementptr float* %512, i32 0 ; [#uses=1] %518 = getelementptr float* %512, i32 1 ; [#uses=1] %519 = getelementptr float* %512, i32 2 ; [#uses=1] %520 = getelementptr float* %512, i32 3 ; [#uses=1] store float %513, float* %517 store float %514, float* %518 store float %515, float* %519 store float %516, float* %520 %.id_ptr81 = getelementptr %vertex_header4* %509, i32 0, i32 0 ; [#uses=1] %.data_ptr82 = getelementptr %vertex_header4* %509, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr81 %521 = getelementptr [4 x [4 x float]]* %.data_ptr82, i32 0, i32 2, i32 0 ; [#uses=4] %522 = extractelement <4 x float> %503, i32 0 ; [#uses=1] %523 = extractelement <4 x float> %503, i32 1 ; [#uses=1] %524 = extractelement <4 x float> %503, i32 2 ; [#uses=1] %525 = extractelement <4 x float> %503, i32 3 ; [#uses=1] %526 = getelementptr float* %521, i32 0 ; [#uses=1] %527 = getelementptr float* %521, i32 1 ; [#uses=1] %528 = getelementptr float* %521, i32 2 ; [#uses=1] %529 = getelementptr float* %521, i32 3 ; [#uses=1] store float %522, float* %526 store float %523, float* %527 store float %524, float* %528 store float %525, float* %529 %.id_ptr83 = getelementptr %vertex_header4* %510, i32 0, i32 0 ; [#uses=1] %.data_ptr84 = getelementptr %vertex_header4* %510, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr83 %530 = getelementptr [4 x [4 x float]]* %.data_ptr84, i32 0, i32 2, i32 0 ; [#uses=4] %531 = extractelement <4 x float> %505, i32 0 ; [#uses=1] %532 = extractelement <4 x float> %505, i32 1 ; [#uses=1] %533 = extractelement <4 x float> %505, i32 2 ; [#uses=1] %534 = extractelement <4 x float> %505, i32 3 ; [#uses=1] %535 = getelementptr float* %530, i32 0 ; [#uses=1] %536 = getelementptr float* %530, i32 1 ; [#uses=1] %537 = getelementptr float* %530, i32 2 ; [#uses=1] %538 = getelementptr float* %530, i32 3 ; [#uses=1] store float %531, float* %535 store float %532, float* %536 store float %533, float* %537 store float %534, float* %538 %.id_ptr85 = getelementptr %vertex_header4* %511, i32 0, i32 0 ; [#uses=1] %.data_ptr86 = getelementptr %vertex_header4* %511, i32 0, i32 2 ; <[4 x [4 x float]]*> [#uses=1] store i32 65535, i32* %.id_ptr85 %539 = getelementptr [4 x [4 x float]]* %.data_ptr86, i32 0, i32 2, i32 0 ; [#uses=4] %540 = extractelement <4 x float> %507, i32 0 ; [#uses=1] %541 = extractelement <4 x float> %507, i32 1 ; [#uses=1] %542 = extractelement <4 x float> %507, i32 2 ; [#uses=1] %543 = extractelement <4 x float> %507, i32 3 ; [#uses=1] %544 = getelementptr float* %539, i32 0 ; [#uses=1] %545 = getelementptr float* %539, i32 1 ; [#uses=1] %546 = getelementptr float* %539, i32 2 ; [#uses=1] %547 = getelementptr float* %539, i32 3 ; [#uses=1] store float %540, float* %544 store float %541, float* %545 store float %542, float* %546 store float %543, float* %547 %548 = add i32 %21, 4 ; [#uses=2] %549 = icmp uge i32 %548, %20 ; [#uses=1] br i1 %549, label %550, label %loop ;