- if (accurate_a0) {
- LLVMValueRef xy1xy2, xy1xy2_center, dxy12, dyx01, dyx12yx20;
- LLVMValueRef p0, p1p2, tmp0, tmp1, shuf0145, shuf1054, shuf1u3u;
-
- shuffles[0] = zeroi;
- shuffles[1] = onei;
- shuffles[2] = lp_build_const_int32(gallivm, 4);
- shuffles[3] = lp_build_const_int32(gallivm, 5);
- shuf0145 = LLVMConstVector(shuffles, 4);
- shuffles[0] = onei;
- shuffles[1] = zeroi;
- shuffles[2] = lp_build_const_int32(gallivm, 5);
- shuffles[3] = lp_build_const_int32(gallivm, 4);
- shuf1054 = LLVMConstVector(shuffles, 4);
- shuffles[0] = onei;
- shuffles[1] = LLVMGetUndef(shuf_type);
- shuffles[2] = lp_build_const_int32(gallivm, 3);
- shuffles[3] = LLVMGetUndef(shuf_type);
- shuf1u3u = LLVMConstVector(shuffles, 4);
-
- xy1xy2 = LLVMBuildShuffleVector(b, attr_pos[1], attr_pos[2], shuf0145, "");
- xy1xy2_center = LLVMBuildFSub(b, xy1xy2, pixel_center, "");
- dxy12 = LLVMBuildFSub(b, attr_pos[1], attr_pos[2], "dxy12");
- dxy12 = LLVMBuildFMul(b, dxy12, ooa, "");
- dyx12yx20 = LLVMBuildShuffleVector(b, dxy12, dxy20, shuf1054, "dyx12yx20");
- dyx01 = LLVMBuildShuffleVector(b, dxy01, dxy01, shuf10, "");
- p0 = LLVMBuildFMul(b, dyx01, xy0_center, "");
- p1p2 = LLVMBuildFMul(b, dyx12yx20, xy1xy2_center, "");
- tmp0 = LLVMBuildExtractElement(b, p0, zeroi, "");
- tmp1 = LLVMBuildExtractElement(b, p0, onei, "");
- args->e01o = lp_build_broadcast_scalar(&bld, LLVMBuildFSub(b, tmp0, tmp1, "e01o"));
- tmp1 = LLVMBuildShuffleVector(b, p1p2, p1p2, shuf1u3u, "");
- tmp0 = LLVMBuildFSub(b, p1p2, tmp1, "e12o20o");
- args->e12o = lp_build_extract_broadcast(gallivm, typef4, typef4, tmp0, zeroi);
- args->e20o = lp_build_extract_broadcast(gallivm, typef4, typef4, tmp0,
- lp_build_const_int32(gallivm, 2));
- }
-