Both operands to a binary operator are not of the same type! %57 = and <4 x i32> %56, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] Instruction does not dominate all uses! %57 = and <4 x i32> %56, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] store <4 x i32> %57, <4 x i32>* %execution_mask Both operands to a binary operator are not of the same type! %74 = and <4 x i32> %73, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] Instruction does not dominate all uses! %74 = and <4 x i32> %73, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] store <4 x i32> %74, <4 x i32>* %execution_mask14 Both operands to a binary operator are not of the same type! %91 = and <4 x i32> %90, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] Instruction does not dominate all uses! %91 = and <4 x i32> %90, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] store <4 x i32> %91, <4 x i32>* %execution_mask30 Both operands to a binary operator are not of the same type! %108 = and <4 x i32> %107, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] Instruction does not dominate all uses! %108 = and <4 x i32> %107, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] store <4 x i32> %108, <4 x i32>* %execution_mask46 Broken module found, verification continues. define void @fs4_variant0_partial(%context* noalias %context, i32 %x, i32 %y, i32, float* noalias %a0, float* noalias %dadx, float* noalias %dady, <16 x i8>** noalias %color_ptr_ptr, i8* noalias %depth, i32 %mask_input, i32* noalias) { entry: %execution_mask67 = alloca <16 x i8> ; <<16 x i8>*> [#uses=3] %execution_mask46 = alloca <4 x i32> ; <<4 x i32>*> [#uses=5] %color45 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color44 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color43 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color42 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %execution_mask30 = alloca <4 x i32> ; <<4 x i32>*> [#uses=5] %color29 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color28 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color27 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color26 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %execution_mask14 = alloca <4 x i32> ; <<4 x i32>*> [#uses=5] %color13 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color12 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color11 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color10 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %execution_mask = alloca <4 x i32> ; <<4 x i32>*> [#uses=5] %color3 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color2 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color1 = alloca <4 x float> ; <<4 x float>*> [#uses=2] %color = alloca <4 x float> ; <<4 x float>*> [#uses=2] %2 = sitofp i32 %x to float ; [#uses=6] %3 = sitofp i32 %y to float ; [#uses=6] %4 = getelementptr float* %a0, i32 0 ; [#uses=1] %pos.x.a0 = load float* %4 ; [#uses=0] %5 = insertelement <4 x float> undef, float %2, i32 0 ; <<4 x float>> [#uses=1] %6 = insertelement <4 x float> %5, float %2, i32 1 ; <<4 x float>> [#uses=1] %7 = insertelement <4 x float> %6, float %2, i32 2 ; <<4 x float>> [#uses=1] %8 = insertelement <4 x float> %7, float %2, i32 3 ; <<4 x float>> [#uses=1] %pos.x.a = fadd <4 x float> %8, ; <<4 x float>> [#uses=4] %9 = getelementptr float* %a0, i32 1 ; [#uses=1] %pos.y.a0 = load float* %9 ; [#uses=0] %10 = insertelement <4 x float> undef, float %3, i32 0 ; <<4 x float>> [#uses=1] %11 = insertelement <4 x float> %10, float %3, i32 1 ; <<4 x float>> [#uses=1] %12 = insertelement <4 x float> %11, float %3, i32 2 ; <<4 x float>> [#uses=1] %13 = insertelement <4 x float> %12, float %3, i32 3 ; <<4 x float>> [#uses=1] %pos.y.a = fadd <4 x float> %13, ; <<4 x float>> [#uses=4] %14 = getelementptr float* %dadx, i32 2 ; [#uses=1] %pos.z.dadx = load float* %14 ; [#uses=3] %15 = getelementptr float* %dady, i32 2 ; [#uses=1] %pos.z.dady = load float* %15 ; [#uses=3] %pos.z.dadxy = fadd float %pos.z.dadx, %pos.z.dady ; [#uses=1] %16 = getelementptr float* %a0, i32 2 ; [#uses=1] %pos.z.a0 = load float* %16 ; [#uses=1] %17 = insertelement <4 x float> , float %pos.z.dadx, i32 1 ; <<4 x float>> [#uses=1] %18 = insertelement <4 x float> %17, float %pos.z.dady, i32 2 ; <<4 x float>> [#uses=1] %pos.z.dadq = insertelement <4 x float> %18, float %pos.z.dadxy, i32 3 ; <<4 x float>> [#uses=6] %19 = fadd <4 x float> %pos.z.dadq, %pos.z.dadq ; <<4 x float>> [#uses=1] %20 = fmul float %2, %pos.z.dadx ; [#uses=1] %21 = fmul float %3, %pos.z.dady ; [#uses=1] %22 = fadd float %20, %21 ; [#uses=1] %23 = fadd float %pos.z.a0, %22 ; [#uses=4] %24 = insertelement <4 x float> undef, float %23, i32 0 ; <<4 x float>> [#uses=1] %25 = insertelement <4 x float> %24, float %23, i32 1 ; <<4 x float>> [#uses=1] %26 = insertelement <4 x float> %25, float %23, i32 2 ; <<4 x float>> [#uses=1] %27 = insertelement <4 x float> %26, float %23, i32 3 ; <<4 x float>> [#uses=1] %pos.z.a = fadd <4 x float> %27, %19 ; <<4 x float>> [#uses=4] %28 = getelementptr float* %dadx, i32 3 ; [#uses=1] %pos.w.dadx = load float* %28 ; [#uses=3] %29 = getelementptr float* %dady, i32 3 ; [#uses=1] %pos.w.dady = load float* %29 ; [#uses=3] %pos.w.dadxy = fadd float %pos.w.dadx, %pos.w.dady ; [#uses=1] %30 = getelementptr float* %a0, i32 3 ; [#uses=1] %pos.w.a0 = load float* %30 ; [#uses=1] %31 = insertelement <4 x float> , float %pos.w.dadx, i32 1 ; <<4 x float>> [#uses=1] %32 = insertelement <4 x float> %31, float %pos.w.dady, i32 2 ; <<4 x float>> [#uses=1] %pos.w.dadq = insertelement <4 x float> %32, float %pos.w.dadxy, i32 3 ; <<4 x float>> [#uses=6] %33 = fadd <4 x float> %pos.w.dadq, %pos.w.dadq ; <<4 x float>> [#uses=1] %34 = fmul float %2, %pos.w.dadx ; [#uses=1] %35 = fmul float %3, %pos.w.dady ; [#uses=1] %36 = fadd float %34, %35 ; [#uses=1] %37 = fadd float %pos.w.a0, %36 ; [#uses=4] %38 = insertelement <4 x float> undef, float %37, i32 0 ; <<4 x float>> [#uses=1] %39 = insertelement <4 x float> %38, float %37, i32 1 ; <<4 x float>> [#uses=1] %40 = insertelement <4 x float> %39, float %37, i32 2 ; <<4 x float>> [#uses=1] %41 = insertelement <4 x float> %40, float %37, i32 3 ; <<4 x float>> [#uses=1] %pos.w.a = fadd <4 x float> %41, %33 ; <<4 x float>> [#uses=4] %42 = getelementptr i8* %depth, i32 0 ; [#uses=0] %context.stencil_ref_front_ptr = getelementptr %context* %context, i32 0, i32 2 ; [#uses=1] %context.stencil_ref_front = load i32* %context.stencil_ref_front_ptr ; [#uses=0] %context.stencil_ref_back_ptr = getelementptr %context* %context, i32 0, i32 3 ; [#uses=1] %context.stencil_ref_back = load i32* %context.stencil_ref_back_ptr ; [#uses=0] %context.constants_ptr = getelementptr %context* %context, i32 0, i32 0 ; [#uses=1] %context.constants = load float** %context.constants_ptr ; [#uses=0] store <4 x float> zeroinitializer, <4 x float>* %color store <4 x float> zeroinitializer, <4 x float>* %color1 store <4 x float> zeroinitializer, <4 x float>* %color2 store <4 x float> zeroinitializer, <4 x float>* %color3 %43 = lshr i32 %mask_input, 0 ; [#uses=4] %44 = insertelement <4 x i32> undef, i32 %43, i32 0 ; <<4 x i32>> [#uses=1] %45 = insertelement <4 x i32> %44, i32 %43, i32 1 ; <<4 x i32>> [#uses=1] %46 = insertelement <4 x i32> %45, i32 %43, i32 2 ; <<4 x i32>> [#uses=1] %47 = insertelement <4 x i32> %46, i32 %43, i32 3 ; <<4 x i32>> [#uses=1] %48 = and <4 x i32> %47, ; <<4 x i32>> [#uses=1] %49 = icmp ne <4 x i32> %48, zeroinitializer ; <<4 x i1>> [#uses=1] %50 = sext <4 x i1> %49 to <4 x i32> ; <<4 x i32>> [#uses=1] store <4 x i32> zeroinitializer, <4 x i32>* %execution_mask store <4 x i32> %50, <4 x i32>* %execution_mask %51 = shufflevector <4 x float> %pos.x.a, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %pos.x = fadd <4 x float> %51, ; <<4 x float>> [#uses=0] %52 = shufflevector <4 x float> %pos.y.a, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %pos.y = fadd <4 x float> %52, ; <<4 x float>> [#uses=0] %53 = shufflevector <4 x float> %pos.z.a, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %54 = fadd <4 x float> %53, %pos.z.dadq ; <<4 x float>> [#uses=1] %pos.z = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %54, <4 x float> ) ; <<4 x float>> [#uses=0] %55 = shufflevector <4 x float> %pos.w.a, <4 x float> undef, <4 x i32> zeroinitializer ; <<4 x float>> [#uses=1] %pos.w = fadd <4 x float> %55, %pos.w.dadq ; <<4 x float>> [#uses=0] %56 = load <4 x i32>* %execution_mask ; <<4 x i32>> [#uses=1] %57 = and <4 x i32> %56, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] store <4 x i32> %57, <4 x i32>* %execution_mask br label %skip skip: ; preds = %entry %58 = load <4 x i32>* %execution_mask ; <<4 x i32>> [#uses=1] %59 = getelementptr i8* %depth, i32 4 ; [#uses=0] %context.stencil_ref_front_ptr4 = getelementptr %context* %context, i32 0, i32 2 ; [#uses=1] %context.stencil_ref_front5 = load i32* %context.stencil_ref_front_ptr4 ; [#uses=0] %context.stencil_ref_back_ptr6 = getelementptr %context* %context, i32 0, i32 3 ; [#uses=1] %context.stencil_ref_back7 = load i32* %context.stencil_ref_back_ptr6 ; [#uses=0] %context.constants_ptr8 = getelementptr %context* %context, i32 0, i32 0 ; [#uses=1] %context.constants9 = load float** %context.constants_ptr8 ; [#uses=0] store <4 x float> zeroinitializer, <4 x float>* %color10 store <4 x float> zeroinitializer, <4 x float>* %color11 store <4 x float> zeroinitializer, <4 x float>* %color12 store <4 x float> zeroinitializer, <4 x float>* %color13 %60 = lshr i32 %mask_input, 2 ; [#uses=4] %61 = insertelement <4 x i32> undef, i32 %60, i32 0 ; <<4 x i32>> [#uses=1] %62 = insertelement <4 x i32> %61, i32 %60, i32 1 ; <<4 x i32>> [#uses=1] %63 = insertelement <4 x i32> %62, i32 %60, i32 2 ; <<4 x i32>> [#uses=1] %64 = insertelement <4 x i32> %63, i32 %60, i32 3 ; <<4 x i32>> [#uses=1] %65 = and <4 x i32> %64, ; <<4 x i32>> [#uses=1] %66 = icmp ne <4 x i32> %65, zeroinitializer ; <<4 x i1>> [#uses=1] %67 = sext <4 x i1> %66 to <4 x i32> ; <<4 x i32>> [#uses=1] store <4 x i32> zeroinitializer, <4 x i32>* %execution_mask14 store <4 x i32> %67, <4 x i32>* %execution_mask14 %68 = shufflevector <4 x float> %pos.x.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %pos.x16 = fadd <4 x float> %68, ; <<4 x float>> [#uses=0] %69 = shufflevector <4 x float> %pos.y.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %pos.y17 = fadd <4 x float> %69, ; <<4 x float>> [#uses=0] %70 = shufflevector <4 x float> %pos.z.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %71 = fadd <4 x float> %70, %pos.z.dadq ; <<4 x float>> [#uses=1] %pos.z18 = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %71, <4 x float> ) ; <<4 x float>> [#uses=0] %72 = shufflevector <4 x float> %pos.w.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %pos.w19 = fadd <4 x float> %72, %pos.w.dadq ; <<4 x float>> [#uses=0] %73 = load <4 x i32>* %execution_mask14 ; <<4 x i32>> [#uses=1] %74 = and <4 x i32> %73, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] store <4 x i32> %74, <4 x i32>* %execution_mask14 br label %skip15 skip15: ; preds = %skip %75 = load <4 x i32>* %execution_mask14 ; <<4 x i32>> [#uses=1] %76 = getelementptr i8* %depth, i32 8 ; [#uses=0] %context.stencil_ref_front_ptr20 = getelementptr %context* %context, i32 0, i32 2 ; [#uses=1] %context.stencil_ref_front21 = load i32* %context.stencil_ref_front_ptr20 ; [#uses=0] %context.stencil_ref_back_ptr22 = getelementptr %context* %context, i32 0, i32 3 ; [#uses=1] %context.stencil_ref_back23 = load i32* %context.stencil_ref_back_ptr22 ; [#uses=0] %context.constants_ptr24 = getelementptr %context* %context, i32 0, i32 0 ; [#uses=1] %context.constants25 = load float** %context.constants_ptr24 ; [#uses=0] store <4 x float> zeroinitializer, <4 x float>* %color26 store <4 x float> zeroinitializer, <4 x float>* %color27 store <4 x float> zeroinitializer, <4 x float>* %color28 store <4 x float> zeroinitializer, <4 x float>* %color29 %77 = lshr i32 %mask_input, 8 ; [#uses=4] %78 = insertelement <4 x i32> undef, i32 %77, i32 0 ; <<4 x i32>> [#uses=1] %79 = insertelement <4 x i32> %78, i32 %77, i32 1 ; <<4 x i32>> [#uses=1] %80 = insertelement <4 x i32> %79, i32 %77, i32 2 ; <<4 x i32>> [#uses=1] %81 = insertelement <4 x i32> %80, i32 %77, i32 3 ; <<4 x i32>> [#uses=1] %82 = and <4 x i32> %81, ; <<4 x i32>> [#uses=1] %83 = icmp ne <4 x i32> %82, zeroinitializer ; <<4 x i1>> [#uses=1] %84 = sext <4 x i1> %83 to <4 x i32> ; <<4 x i32>> [#uses=1] store <4 x i32> zeroinitializer, <4 x i32>* %execution_mask30 store <4 x i32> %84, <4 x i32>* %execution_mask30 %85 = shufflevector <4 x float> %pos.x.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %pos.x32 = fadd <4 x float> %85, ; <<4 x float>> [#uses=0] %86 = shufflevector <4 x float> %pos.y.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %pos.y33 = fadd <4 x float> %86, ; <<4 x float>> [#uses=0] %87 = shufflevector <4 x float> %pos.z.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %88 = fadd <4 x float> %87, %pos.z.dadq ; <<4 x float>> [#uses=1] %pos.z34 = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %88, <4 x float> ) ; <<4 x float>> [#uses=0] %89 = shufflevector <4 x float> %pos.w.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %pos.w35 = fadd <4 x float> %89, %pos.w.dadq ; <<4 x float>> [#uses=0] %90 = load <4 x i32>* %execution_mask30 ; <<4 x i32>> [#uses=1] %91 = and <4 x i32> %90, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] store <4 x i32> %91, <4 x i32>* %execution_mask30 br label %skip31 skip31: ; preds = %skip15 %92 = load <4 x i32>* %execution_mask30 ; <<4 x i32>> [#uses=1] %93 = getelementptr i8* %depth, i32 12 ; [#uses=0] %context.stencil_ref_front_ptr36 = getelementptr %context* %context, i32 0, i32 2 ; [#uses=1] %context.stencil_ref_front37 = load i32* %context.stencil_ref_front_ptr36 ; [#uses=0] %context.stencil_ref_back_ptr38 = getelementptr %context* %context, i32 0, i32 3 ; [#uses=1] %context.stencil_ref_back39 = load i32* %context.stencil_ref_back_ptr38 ; [#uses=0] %context.constants_ptr40 = getelementptr %context* %context, i32 0, i32 0 ; [#uses=1] %context.constants41 = load float** %context.constants_ptr40 ; [#uses=0] store <4 x float> zeroinitializer, <4 x float>* %color42 store <4 x float> zeroinitializer, <4 x float>* %color43 store <4 x float> zeroinitializer, <4 x float>* %color44 store <4 x float> zeroinitializer, <4 x float>* %color45 %94 = lshr i32 %mask_input, 10 ; [#uses=4] %95 = insertelement <4 x i32> undef, i32 %94, i32 0 ; <<4 x i32>> [#uses=1] %96 = insertelement <4 x i32> %95, i32 %94, i32 1 ; <<4 x i32>> [#uses=1] %97 = insertelement <4 x i32> %96, i32 %94, i32 2 ; <<4 x i32>> [#uses=1] %98 = insertelement <4 x i32> %97, i32 %94, i32 3 ; <<4 x i32>> [#uses=1] %99 = and <4 x i32> %98, ; <<4 x i32>> [#uses=1] %100 = icmp ne <4 x i32> %99, zeroinitializer ; <<4 x i1>> [#uses=1] %101 = sext <4 x i1> %100 to <4 x i32> ; <<4 x i32>> [#uses=1] store <4 x i32> zeroinitializer, <4 x i32>* %execution_mask46 store <4 x i32> %101, <4 x i32>* %execution_mask46 %102 = shufflevector <4 x float> %pos.x.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %pos.x48 = fadd <4 x float> %102, ; <<4 x float>> [#uses=0] %103 = shufflevector <4 x float> %pos.y.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %pos.y49 = fadd <4 x float> %103, ; <<4 x float>> [#uses=0] %104 = shufflevector <4 x float> %pos.z.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %105 = fadd <4 x float> %104, %pos.z.dadq ; <<4 x float>> [#uses=1] %pos.z50 = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %105, <4 x float> ) ; <<4 x float>> [#uses=0] %106 = shufflevector <4 x float> %pos.w.a, <4 x float> undef, <4 x i32> ; <<4 x float>> [#uses=1] %pos.w51 = fadd <4 x float> %106, %pos.w.dadq ; <<4 x float>> [#uses=0] %107 = load <4 x i32>* %execution_mask46 ; <<4 x i32>> [#uses=1] %108 = and <4 x i32> %107, <4 x float> zeroinitializer ; <<4 x i32>> [#uses=1] store <4 x i32> %108, <4 x i32>* %execution_mask46 br label %skip47 skip47: ; preds = %skip31 %109 = load <4 x i32>* %execution_mask46 ; <<4 x i32>> [#uses=1] %fs_color_vals = load <4 x float>* %color ; <<4 x float>> [#uses=1] %fs_color_vals52 = load <4 x float>* %color10 ; <<4 x float>> [#uses=1] %fs_color_vals53 = load <4 x float>* %color26 ; <<4 x float>> [#uses=1] %fs_color_vals54 = load <4 x float>* %color42 ; <<4 x float>> [#uses=1] %110 = fmul <4 x float> %fs_color_vals, ; <<4 x float>> [#uses=1] %111 = fmul <4 x float> %fs_color_vals52, ; <<4 x float>> [#uses=1] %112 = fmul <4 x float> %fs_color_vals53, ; <<4 x float>> [#uses=1] %113 = fmul <4 x float> %fs_color_vals54, ; <<4 x float>> [#uses=1] %114 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %110) ; <<4 x i32>> [#uses=1] %115 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %111) ; <<4 x i32>> [#uses=1] %116 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %112) ; <<4 x i32>> [#uses=1] %117 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %113) ; <<4 x i32>> [#uses=1] %118 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %114, <4 x i32> %115) ; <<8 x i16>> [#uses=1] %119 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %116, <4 x i32> %117) ; <<8 x i16>> [#uses=1] %res.r = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %118, <8 x i16> %119) ; <<16 x i8>> [#uses=1] %fs_color_vals55 = load <4 x float>* %color1 ; <<4 x float>> [#uses=1] %fs_color_vals56 = load <4 x float>* %color11 ; <<4 x float>> [#uses=1] %fs_color_vals57 = load <4 x float>* %color27 ; <<4 x float>> [#uses=1] %fs_color_vals58 = load <4 x float>* %color43 ; <<4 x float>> [#uses=1] %120 = fmul <4 x float> %fs_color_vals55, ; <<4 x float>> [#uses=1] %121 = fmul <4 x float> %fs_color_vals56, ; <<4 x float>> [#uses=1] %122 = fmul <4 x float> %fs_color_vals57, ; <<4 x float>> [#uses=1] %123 = fmul <4 x float> %fs_color_vals58, ; <<4 x float>> [#uses=1] %124 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %120) ; <<4 x i32>> [#uses=1] %125 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %121) ; <<4 x i32>> [#uses=1] %126 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %122) ; <<4 x i32>> [#uses=1] %127 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %123) ; <<4 x i32>> [#uses=1] %128 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %124, <4 x i32> %125) ; <<8 x i16>> [#uses=1] %129 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %126, <4 x i32> %127) ; <<8 x i16>> [#uses=1] %res.g = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %128, <8 x i16> %129) ; <<16 x i8>> [#uses=1] %fs_color_vals59 = load <4 x float>* %color2 ; <<4 x float>> [#uses=1] %fs_color_vals60 = load <4 x float>* %color12 ; <<4 x float>> [#uses=1] %fs_color_vals61 = load <4 x float>* %color28 ; <<4 x float>> [#uses=1] %fs_color_vals62 = load <4 x float>* %color44 ; <<4 x float>> [#uses=1] %130 = fmul <4 x float> %fs_color_vals59, ; <<4 x float>> [#uses=1] %131 = fmul <4 x float> %fs_color_vals60, ; <<4 x float>> [#uses=1] %132 = fmul <4 x float> %fs_color_vals61, ; <<4 x float>> [#uses=1] %133 = fmul <4 x float> %fs_color_vals62, ; <<4 x float>> [#uses=1] %134 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %130) ; <<4 x i32>> [#uses=1] %135 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %131) ; <<4 x i32>> [#uses=1] %136 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %132) ; <<4 x i32>> [#uses=1] %137 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %133) ; <<4 x i32>> [#uses=1] %138 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %134, <4 x i32> %135) ; <<8 x i16>> [#uses=1] %139 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %136, <4 x i32> %137) ; <<8 x i16>> [#uses=1] %res.b = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %138, <8 x i16> %139) ; <<16 x i8>> [#uses=1] %fs_color_vals63 = load <4 x float>* %color3 ; <<4 x float>> [#uses=1] %fs_color_vals64 = load <4 x float>* %color13 ; <<4 x float>> [#uses=1] %fs_color_vals65 = load <4 x float>* %color29 ; <<4 x float>> [#uses=1] %fs_color_vals66 = load <4 x float>* %color45 ; <<4 x float>> [#uses=1] %140 = fmul <4 x float> %fs_color_vals63, ; <<4 x float>> [#uses=1] %141 = fmul <4 x float> %fs_color_vals64, ; <<4 x float>> [#uses=1] %142 = fmul <4 x float> %fs_color_vals65, ; <<4 x float>> [#uses=1] %143 = fmul <4 x float> %fs_color_vals66, ; <<4 x float>> [#uses=1] %144 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %140) ; <<4 x i32>> [#uses=1] %145 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %141) ; <<4 x i32>> [#uses=1] %146 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %142) ; <<4 x i32>> [#uses=1] %147 = call <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float> %143) ; <<4 x i32>> [#uses=1] %148 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %144, <4 x i32> %145) ; <<8 x i16>> [#uses=1] %149 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %146, <4 x i32> %147) ; <<8 x i16>> [#uses=1] %res.a = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %148, <8 x i16> %149) ; <<16 x i8>> [#uses=1] %150 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %58, <4 x i32> %75) ; <<8 x i16>> [#uses=1] %151 = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %92, <4 x i32> %109) ; <<8 x i16>> [#uses=1] %152 = call <16 x i8> @llvm.x86.sse2.packsswb.128(<8 x i16> %150, <8 x i16> %151) ; <<16 x i8>> [#uses=9] %153 = getelementptr <16 x i8>** %color_ptr_ptr, i32 0 ; <<16 x i8>**> [#uses=1] %color_ptr0 = load <16 x i8>** %153 ; <<16 x i8>*> [#uses=8] store <16 x i8> zeroinitializer, <16 x i8>* %execution_mask67 store <16 x i8> %152, <16 x i8>* %execution_mask67 %context.blend_color_ptr = getelementptr %context* %context, i32 0, i32 4 ; [#uses=1] %context.blend_color = load i8** %context.blend_color_ptr ; [#uses=1] %154 = bitcast i8* %context.blend_color to <16 x i8>* ; <<16 x i8>*> [#uses=4] %155 = getelementptr <16 x i8>* %154, i32 0 ; <<16 x i8>*> [#uses=1] %con.r = load <16 x i8>* %155 ; <<16 x i8>> [#uses=0] %156 = getelementptr <16 x i8>* %color_ptr0, i32 0 ; <<16 x i8>*> [#uses=1] %dst.r = load <16 x i8>* %156 ; <<16 x i8>> [#uses=1] %157 = getelementptr <16 x i8>* %154, i32 1 ; <<16 x i8>*> [#uses=1] %con.g = load <16 x i8>* %157 ; <<16 x i8>> [#uses=0] %158 = getelementptr <16 x i8>* %color_ptr0, i32 1 ; <<16 x i8>*> [#uses=1] %dst.g = load <16 x i8>* %158 ; <<16 x i8>> [#uses=1] %159 = getelementptr <16 x i8>* %154, i32 2 ; <<16 x i8>*> [#uses=1] %con.b = load <16 x i8>* %159 ; <<16 x i8>> [#uses=0] %160 = getelementptr <16 x i8>* %color_ptr0, i32 2 ; <<16 x i8>*> [#uses=1] %dst.b = load <16 x i8>* %160 ; <<16 x i8>> [#uses=1] %161 = getelementptr <16 x i8>* %154, i32 3 ; <<16 x i8>*> [#uses=1] %con.a = load <16 x i8>* %161 ; <<16 x i8>> [#uses=0] %162 = getelementptr <16 x i8>* %color_ptr0, i32 3 ; <<16 x i8>*> [#uses=1] %dst.a = load <16 x i8>* %162 ; <<16 x i8>> [#uses=1] %163 = and <16 x i8> %res.r, %152 ; <<16 x i8>> [#uses=1] %164 = xor <16 x i8> %152, ; <<16 x i8>> [#uses=1] %165 = and <16 x i8> %dst.r, %164 ; <<16 x i8>> [#uses=1] %166 = or <16 x i8> %163, %165 ; <<16 x i8>> [#uses=1] %167 = getelementptr <16 x i8>* %color_ptr0, i32 0 ; <<16 x i8>*> [#uses=1] store <16 x i8> %166, <16 x i8>* %167 %168 = and <16 x i8> %res.g, %152 ; <<16 x i8>> [#uses=1] %169 = xor <16 x i8> %152, ; <<16 x i8>> [#uses=1] %170 = and <16 x i8> %dst.g, %169 ; <<16 x i8>> [#uses=1] %171 = or <16 x i8> %168, %170 ; <<16 x i8>> [#uses=1] %172 = getelementptr <16 x i8>* %color_ptr0, i32 1 ; <<16 x i8>*> [#uses=1] store <16 x i8> %171, <16 x i8>* %172 %173 = and <16 x i8> %res.b, %152 ; <<16 x i8>> [#uses=1] %174 = xor <16 x i8> %152, ; <<16 x i8>> [#uses=1] %175 = and <16 x i8> %dst.b, %174 ; <<16 x i8>> [#uses=1] %176 = or <16 x i8> %173, %175 ; <<16 x i8>> [#uses=1] %177 = getelementptr <16 x i8>* %color_ptr0, i32 2 ; <<16 x i8>*> [#uses=1] store <16 x i8> %176, <16 x i8>* %177 %178 = and <16 x i8> %res.a, %152 ; <<16 x i8>> [#uses=1] %179 = xor <16 x i8> %152, ; <<16 x i8>> [#uses=1] %180 = and <16 x i8> %dst.a, %179 ; <<16 x i8>> [#uses=1] %181 = or <16 x i8> %178, %180 ; <<16 x i8>> [#uses=1] %182 = getelementptr <16 x i8>* %color_ptr0, i32 3 ; <<16 x i8>*> [#uses=1] store <16 x i8> %181, <16 x i8>* %182 br label %skip68 skip68: ; preds = %skip47 %183 = load <16 x i8>* %execution_mask67 ; <<16 x i8>> [#uses=0] call void @llvm.x86.mmx.emms() ret void }