define private fastcc { <8 x float>, <8 x float>, <8 x float>, <8 x float> } @texfunc_res_0_sam_0_0({ [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }* noalias, <8 x float>, <8 x float>) { entry: %sampler0_texel_w_var = alloca <8 x float> %sampler0_texel_z_var = alloca <8 x float> %sampler0_texel_y_var = alloca <8 x float> %sampler0_texel_x_var = alloca <8 x float> %3 = getelementptr { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }, { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }* %0, i32 0, i32 8, i32 0, i32 0 %context.texture0.width = load i32, i32* %3 %context.texture0.row_stride = getelementptr { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }, { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }* %0, i32 0, i32 8, i32 0, i32 6 %context.texture0.img_stride = getelementptr { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }, { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }* %0, i32 0, i32 8, i32 0, i32 7 %4 = getelementptr { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }, { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }* %0, i32 0, i32 8, i32 0, i32 5 %context.texture0.base_ptr = load i8*, i8** %4 %context.texture0.mip_offsets = getelementptr { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }, { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }* %0, i32 0, i32 8, i32 0, i32 8 %5 = insertelement <4 x i32> undef, i32 %context.texture0.width, i32 0 %6 = getelementptr { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }, { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }* %0, i32 0, i32 8, i32 0, i32 1 %context.texture0.height = load i32, i32* %6 %7 = insertelement <4 x i32> %5, i32 %context.texture0.height, i32 1 %8 = getelementptr { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }, { [16 x float*], [16 x i32], float, i32, i32, i8*, float*, { float, float }*, [32 x { i32, i32, i32, i32, i32, i8*, [14 x i32], [14 x i32], [14 x i32] }], [32 x { float, float, float, [4 x float] }] }* %0, i32 0, i32 8, i32 0, i32 3 %context.texture0.first_level = load i32, i32* %8 store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_x_var store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_y_var store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_z_var store <8 x float> zeroinitializer, <8 x float>* %sampler0_texel_w_var %9 = insertelement <4 x i32> undef, i32 %context.texture0.first_level, i32 0 %10 = shufflevector <4 x i32> %9, <4 x i32> undef, <4 x i32> zeroinitializer %minify = lshr <4 x i32> %7, %10 %11 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %minify, <4 x i32> ) %12 = getelementptr [14 x i32], [14 x i32]* %context.texture0.row_stride, i32 0, i32 %context.texture0.first_level %13 = load i32, i32* %12 %14 = insertelement <8 x i32> undef, i32 %13, i32 0 %15 = shufflevector <8 x i32> %14, <8 x i32> undef, <8 x i32> zeroinitializer %16 = getelementptr [14 x i32], [14 x i32]* %context.texture0.mip_offsets, i32 0, i32 %context.texture0.first_level %17 = load i32, i32* %16 %18 = getelementptr i8, i8* %context.texture0.base_ptr, i32 %17 %19 = shufflevector <4 x i32> %11, <4 x i32> undef, <8 x i32> zeroinitializer %20 = shufflevector <4 x i32> %11, <4 x i32> undef, <8 x i32> %21 = sitofp <4 x i32> %11 to <4 x float> %22 = shufflevector <4 x float> %21, <4 x float> undef, <8 x i32> zeroinitializer %23 = shufflevector <4 x float> %21, <4 x float> undef, <8 x i32> %24 = sub <8 x i32> %19, %25 = fmul <8 x float> %1, %22 %26 = fptosi <8 x float> %25 to <8 x i32> %27 = shufflevector <8 x i32> %26, <8 x i32> %26, <4 x i32> %28 = shufflevector <8 x i32> %24, <8 x i32> %24, <4 x i32> %29 = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %27, <4 x i32> %28) %30 = shufflevector <8 x i32> %26, <8 x i32> %26, <4 x i32> %31 = shufflevector <8 x i32> %24, <8 x i32> %24, <4 x i32> %32 = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %30, <4 x i32> %31) %33 = shufflevector <4 x i32> %29, <4 x i32> %32, <8 x i32> %34 = shufflevector <8 x i32> %33, <8 x i32> %33, <4 x i32> %35 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %34, <4 x i32> zeroinitializer) %36 = shufflevector <8 x i32> %33, <8 x i32> %33, <4 x i32> %37 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %36, <4 x i32> zeroinitializer) %tex.x.wrapped = shufflevector <4 x i32> %35, <4 x i32> %37, <8 x i32> %38 = sub <8 x i32> %20, %39 = fmul <8 x float> %2, %23 %40 = fptosi <8 x float> %39 to <8 x i32> %41 = shufflevector <8 x i32> %40, <8 x i32> %40, <4 x i32> %42 = shufflevector <8 x i32> %38, <8 x i32> %38, <4 x i32> %43 = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %41, <4 x i32> %42) %44 = shufflevector <8 x i32> %40, <8 x i32> %40, <4 x i32> %45 = shufflevector <8 x i32> %38, <8 x i32> %38, <4 x i32> %46 = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %44, <4 x i32> %45) %47 = shufflevector <4 x i32> %43, <4 x i32> %46, <8 x i32> %48 = shufflevector <8 x i32> %47, <8 x i32> %47, <4 x i32> %49 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %48, <4 x i32> zeroinitializer) %50 = shufflevector <8 x i32> %47, <8 x i32> %47, <4 x i32> %51 = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %50, <4 x i32> zeroinitializer) %tex.y.wrapped = shufflevector <4 x i32> %49, <4 x i32> %51, <8 x i32> %52 = mul <8 x i32> %tex.x.wrapped, %53 = mul <8 x i32> %tex.y.wrapped, %15 %54 = add <8 x i32> %52, %53 %55 = extractelement <8 x i32> %54, i32 0 %56 = getelementptr i8, i8* %18, i32 %55 %57 = bitcast i8* %56 to i32* %58 = load i32, i32* %57 %59 = insertelement <8 x i32> undef, i32 %58, i32 0 %60 = extractelement <8 x i32> %54, i32 1 %61 = getelementptr i8, i8* %18, i32 %60 %62 = bitcast i8* %61 to i32* %63 = load i32, i32* %62 %64 = insertelement <8 x i32> %59, i32 %63, i32 1 %65 = extractelement <8 x i32> %54, i32 2 %66 = getelementptr i8, i8* %18, i32 %65 %67 = bitcast i8* %66 to i32* %68 = load i32, i32* %67 %69 = insertelement <8 x i32> %64, i32 %68, i32 2 %70 = extractelement <8 x i32> %54, i32 3 %71 = getelementptr i8, i8* %18, i32 %70 %72 = bitcast i8* %71 to i32* %73 = load i32, i32* %72 %74 = insertelement <8 x i32> %69, i32 %73, i32 3 %75 = extractelement <8 x i32> %54, i32 4 %76 = getelementptr i8, i8* %18, i32 %75 %77 = bitcast i8* %76 to i32* %78 = load i32, i32* %77 %79 = insertelement <8 x i32> %74, i32 %78, i32 4 %80 = extractelement <8 x i32> %54, i32 5 %81 = getelementptr i8, i8* %18, i32 %80 %82 = bitcast i8* %81 to i32* %83 = load i32, i32* %82 %84 = insertelement <8 x i32> %79, i32 %83, i32 5 %85 = extractelement <8 x i32> %54, i32 6 %86 = getelementptr i8, i8* %18, i32 %85 %87 = bitcast i8* %86 to i32* %88 = load i32, i32* %87 %89 = insertelement <8 x i32> %84, i32 %88, i32 6 %90 = extractelement <8 x i32> %54, i32 7 %91 = getelementptr i8, i8* %18, i32 %90 %92 = bitcast i8* %91 to i32* %93 = load i32, i32* %92 %94 = insertelement <8 x i32> %89, i32 %93, i32 7 %95 = and <8 x i32> %94, %96 = sitofp <8 x i32> %95 to <8 x float> %97 = fmul <8 x float> %96, store <8 x float> %97, <8 x float>* %sampler0_texel_x_var store <8 x float> %97, <8 x float>* %sampler0_texel_y_var store <8 x float> %97, <8 x float>* %sampler0_texel_z_var store <8 x float> , <8 x float>* %sampler0_texel_w_var %sampler0_texel_x = load <8 x float>, <8 x float>* %sampler0_texel_x_var %sampler0_texel_y = load <8 x float>, <8 x float>* %sampler0_texel_y_var %sampler0_texel_z = load <8 x float>, <8 x float>* %sampler0_texel_z_var %sampler0_texel_w = load <8 x float>, <8 x float>* %sampler0_texel_w_var %mrv = insertvalue { <8 x float>, <8 x float>, <8 x float>, <8 x float> } undef, <8 x float> %sampler0_texel_x, 0 %mrv1 = insertvalue { <8 x float>, <8 x float>, <8 x float>, <8 x float> } %mrv, <8 x float> %sampler0_texel_y, 1 %mrv2 = insertvalue { <8 x float>, <8 x float>, <8 x float>, <8 x float> } %mrv1, <8 x float> %sampler0_texel_z, 2 %mrv3 = insertvalue { <8 x float>, <8 x float>, <8 x float>, <8 x float> } %mrv2, <8 x float> %sampler0_texel_w, 3 ret { <8 x float>, <8 x float>, <8 x float>, <8 x float> } %mrv3 }