; RUN: llc < %s
target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128"
target triple = "powerpc-apple-darwin9"
	%struct.BiPartSrcDescriptor = type <{ %"struct.BiPartSrcDescriptor::$_105" }>
	%"struct.BiPartSrcDescriptor::$_105" = type { %struct.BiPartSrcDescriptor_NO_VECTOR_ALIGNMENT_size_is_16 }
	%struct.BiPartSrcDescriptor_NO_VECTOR_ALIGNMENT_size_is_16 = type { [2 x %struct.MotionVectors], [2 x i8], %struct.Map4x4ToPartIdx, [2 x i8], i8, i8 }
	%struct.Condv = type opaque
	%struct.DHBFLayerId = type { i8 }
	%struct.DecodeComplexityInfo = type { i32, i32, i32, i32, %"struct.DecodeComplexityInfo::IntraStats", %"struct.DecodeComplexityInfo::InterStats" }
	%"struct.DecodeComplexityInfo::InterStats" = type { i32, i32, i32, i32, [5 x i32], [3 x i32], [4 x [4 x i32]], [4 x i32], i32, %struct.MotionVectors, %struct.MotionVectors }
	%"struct.DecodeComplexityInfo::IntraStats" = type { i32, i32, i32, [5 x i32], [3 x i32], [4 x i32], [3 x i32] }
	%struct.DecodeComplexityOptions = type { i8, i8, i32, double, i8, float, i8, float, i8, i8, i8, i8, i8 }
	%struct.DescriptorAllocator = type { %struct.Mutex*, %struct.Mutex*, i8**, i32, i32, i8**, i32, i32, i8**, i32, i32 }
	%struct.DetailsFromSliceType = type <{ i8 }>
	%struct.FlatnessAnalysis = type { i16, i16, i32, i32*, i8*, [512 x i32], [256 x i32] }
	%struct.Frame = type <{ i8, i8, i8, i8, i8, [3 x i8], i32, i32, %struct.Mutex*, %struct.Condv*, [8 x i8], %struct.FramePixels, %struct.FrameMotionVectorCache, %struct.FrameIndex, i32, i8*, i8*, i8*, i8*, i16*, %struct.FlatnessAnalysis, %struct.NoiseAnalysis, %struct.VisualActivity, %struct.FrameMotionInfo, %struct.FrameMotionAnalysis, %struct.FrameDataRateParameters, %struct.FrameEncoderTags, %struct.DecodeComplexityInfo, %struct.DecodeComplexityOptions, %struct.MotionInfoFor16x16_FasterSP*, [1 x i32] }>
	%struct.FrameDataRateParameters = type { i32, float, i8, i8 }
	%struct.FrameEncoderTags = type { i8, i8, i32, i8, i8, float }
	%struct.FrameIndex = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i32, i32, %struct.Frame*, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, %struct.DHBFLayerId }
	%struct.FrameMotionAnalysis = type { i32, i32, i32, %struct.MoEstMotion16x16*, %struct.MbAnalysis*, i32, i32, i16, i16, i32, i32, i32, i32, i8, i8 }
	%struct.FrameMotionInfo = type { i32, i32, %struct.MoEstMbMotionInfo*, i32, i32, i32, i32, i32 }
	%struct.FrameMotionVectorCache = type <{ %struct.ThreadAllocator**, i32, i32, i32, %struct.BiPartSrcDescriptor, %struct.BiPartSrcDescriptor, %struct.BiPartSrcDescriptor, [3 x %struct.BiPartSrcDescriptor*], %struct.BiPartSrcDescriptor** }>
	%struct.FramePixels = type <{ i8, i8, i8, i8, i8, i8, i8, i8, i8*, i8*, i32, [4 x i8*], [4 x i8*], [2 x [4 x i32]], [2 x [4 x i32]], %struct.PixelData, %struct.InterpolationCache*, %struct.InterpolationCache*, %struct.InterpolationCache*, [16 x i16], [16 x i16], [12 x i8], %"struct.PortableSInt32Array<4>", %"struct.PortableSInt32Array<8>", %struct.ICOffsetArraysY, %struct.UVSrcOffsetEtcX_Struct*, i32*, i32*, [3 x i32] }>
	%struct.ICOffsetArraysY = type { [21 x i32], [21 x i32], [4 x [21 x i32]] }
	%struct.InterpolationCache = type opaque
	%struct.LoopFilterInfo = type { %struct.BiPartSrcDescriptor**, i32, i32, i32, i32, i32*, i32, %"struct.LoopFilterInfo::SliceInfoStruct"*, i32, %struct.Mutex*, i16*, %struct.FramePixels*, i8*, i8*, i8*, i8*, i8*, %struct.PerMacroblockBoundaryStrengths*, %struct.Mutex*, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8*, i8*, i8, void (i8*, i8*, i32, i32, i32, i32, i32, i8*, i32)*, void (i8*, i8*, i32, i32, i32, i32, i32, i8*, i32, i8*)*, i32 }
	%"struct.LoopFilterInfo::SliceInfoStruct" = type { %"struct.LoopFilterInfo::SliceInfoStruct::LFDisableStats", i8, i8, i8, i8, [17 x %struct.Frame*], [17 x %struct.Frame*] }
	%"struct.LoopFilterInfo::SliceInfoStruct::LFDisableStats" = type { i32, i32 }
	%struct.LoopFilterParam = type { i32, %struct.LoopFilterInfo*, %struct.FramePixels*, %struct.FrameMotionVectorCache* }
	%struct.Map4x4ToPartIdx = type { i16 }
	%struct.MbAnalysis = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, %struct.RdCost, %struct.RdCost, i32 }
	%struct.MoEstMbMotionInfo = type { i32, i32, i32, i32, [16 x %struct.MoEstPartMotionInfo] }
	%struct.MoEstMotion16x16 = type { [2 x i8], [2 x %struct.MotionVectors], i8, [3 x %struct.MoEstPredCost] }
	%struct.MoEstPartMotionInfo = type { i32, %struct.PartGeom, i32, i32, [2 x %struct.MotionVectors], [2 x i8], i16 }
	%struct.MoEstPredCost = type { i32, i16, i16 }
	%struct.MotionInfoFor16x16_FasterSP = type { [2 x %struct.MotionVectors], [2 x i8], i8, [2 x i32], i32, i32 }
	%struct.MotionVectors = type { %"struct.MotionVectors::$_103" }
	%"struct.MotionVectors::$_103" = type { i32 }
	%struct.Mutex = type opaque
	%struct.NoiseAnalysis = type { i16, i16, i32, i8*, i8*, i8*, [512 x i32] }
	%struct.PartGeom = type { %struct.Map4x4ToPartIdx }
	%struct.PerMacroblockBoundaryStrengths = type { [16 x i8], [16 x i8], [4 x i8], [4 x i8], [2 x i32] }
	%struct.PixelData = type { i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8 }
	%"struct.PortableSInt32Array<4>" = type { [4 x i32] }
	%"struct.PortableSInt32Array<8>" = type { [8 x i32] }
	%struct.RdCost = type { i32, i32, i32, double }
	%struct.ThreadAllocator = type { %struct.DescriptorAllocator*, %struct.BiPartSrcDescriptor*, [256 x %struct.BiPartSrcDescriptor*], i32, i32, i32 }
	%struct.ThreadedBatch = type opaque
	%struct.UVSrcOffsetEtcX_Struct = type <{ i16 }>
	%struct.VisualActivity = type { i16, i16, i32, i32, i32*, i32*, i32, i32, i32*, i32, i32, i32, i32, i32, i8*, i32, [2 x i32], i32, i32, i32, i16*, i16, i16, i16, i16, float, i8*, i32*, i32, i32, i8 }
@_ZL33table_8_14_indexA_to_alpha_scalar = external constant [64 x i8]		; <[64 x i8]*> [#uses=0]
@_ZL32table_8_14_indexB_to_beta_scalar = external constant [64 x i8]		; <[64 x i8]*> [#uses=0]
@_ZL34table_8_15_indexA_bS_to_tc0_scalar = external constant [64 x [4 x i8]]		; <[64 x [4 x i8]]*> [#uses=0]
@gkDummy = external global i32		; <i32*> [#uses=0]
@gkDetailsFromSliceTypeArray = external constant [10 x %struct.DetailsFromSliceType]		; <[10 x %struct.DetailsFromSliceType]*> [#uses=0]

declare i32 @_Z20LoopFilter_ConstructP14LoopFilterInfojj(%struct.LoopFilterInfo*, i32, i32)

declare i32 @_Z25LF_Threading2_assert_doneP14LoopFilterInfo(%struct.LoopFilterInfo*) nounwind 

declare i32 @_Z54S_CalcIfLargeMVDeltaForBMbBothPredictionsFromSameFramePK19BiPartSrcDescriptorS1_ijj(%struct.BiPartSrcDescriptor*, %struct.BiPartSrcDescriptor*, i32, i32, i32) nounwind 

declare void @_Z30LoopFilter_Internal_FilterLumaPhiiiiii(i8*, i32, i32, i32, i32, i32, i32) nounwind 

declare void @_Z33LoopFilter_Internal_FilterChromaVPhiiiiiiiiii(i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) nounwind 

declare void @_Z33LoopFilter_Internal_FilterChromaHPhiiiiii(i8*, i32, i32, i32, i32, i32, i32) nounwind 

declare void @_Z42LoopFilter_Internal_filter_macroblock_lumaPK14LoopFilterInfoPhS2_iiiPK30PerMacroblockBoundaryStrengthsjj(%struct.LoopFilterInfo*, i8*, i8*, i32, i32, i32, %struct.PerMacroblockBoundaryStrengths*, i32, i32) nounwind 

declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 

declare i32 @_Z40LoopFilter_Internal_FilterLumaPlaneMBAFFPK14LoopFilterInfojjj(%struct.LoopFilterInfo*, i32, i32, i32) nounwind 

declare void @_Z18LoopFilter_DestroyP14LoopFilterInfo(%struct.LoopFilterInfo*)

declare void @MutexDispose(%struct.Mutex*)

declare void @_ZdaPv(i8*) nounwind 

declare void @jvtDisposePTRVectorAligned(i8*)

declare void @jvtDisposePTR(i8*)

declare void @jvtDisposePTRMemAligned(i8*)

declare void @_Z31LoopFilter_Internal_ResetTablesP14LoopFilterInfo(%struct.LoopFilterInfo*) nounwind 

declare void @llvm.memset.i32(i8*, i8, i32, i32) nounwind 

define i32 @_Z60LoopFilter_Internal_CalculateBoundaryStrengths_MbaffFramePicPK14LoopFilterInfoP22FrameMotionVectorCachejj(%struct.LoopFilterInfo* %lfiPtr, %struct.FrameMotionVectorCache* %frameMotionVectorCachePtr, i32 %mbY_min, i32 %mbY_maxPlus1) nounwind  {
entry:
	icmp ult i32 %mbY_min, %mbY_maxPlus1		; <i1>:0 [#uses=1]
	br i1 %0, label %bb16, label %bb642

bb16:		; preds = %entry
	bitcast %struct.PerMacroblockBoundaryStrengths* null to i32*		; <i32*>:1 [#uses=3]
	getelementptr i32* %1, i32 1		; <i32*>:2 [#uses=0]
	getelementptr i32* %1, i32 2		; <i32*>:3 [#uses=0]
	getelementptr i32* %1, i32 3		; <i32*>:4 [#uses=0]
	bitcast [16 x i8]* null to i32*		; <i32*>:5 [#uses=3]
	getelementptr i32* %5, i32 1		; <i32*>:6 [#uses=0]
	getelementptr i32* %5, i32 2		; <i32*>:7 [#uses=0]
	getelementptr i32* %5, i32 3		; <i32*>:8 [#uses=0]
	icmp eq i32 0, 0		; <i1>:9 [#uses=0]
	lshr i32 0, 30		; <i32>:10 [#uses=0]
	and i32 0, 268435455		; <i32>:11 [#uses=0]
	lshr i32 0, 28		; <i32>:12 [#uses=1]
	and i32 %12, 3		; <i32>:13 [#uses=0]
	and i32 0, 1		; <i32>:14 [#uses=1]
	icmp eq i32 %14, 0		; <i1>:15 [#uses=0]
	zext i8 0 to i32		; <i32>:16 [#uses=1]
	%.not656 = icmp ne i32 0, 0		; <i1> [#uses=1]
	icmp eq i8 0, 0		; <i1>:17 [#uses=0]
	trunc i32 0 to i8		; <i8>:18 [#uses=2]
	add i32 0, 1		; <i32>:19 [#uses=1]
	%.not658 = icmp ne i32 0, 0		; <i1> [#uses=1]
	and i32 0, 268369920		; <i32>:20 [#uses=1]
	icmp eq i32 %20, 268369920		; <i1>:21 [#uses=2]
	getelementptr %struct.PerMacroblockBoundaryStrengths* null, i32 0, i32 2		; <[4 x i8]*>:22 [#uses=1]
	getelementptr %struct.PerMacroblockBoundaryStrengths* null, i32 0, i32 2, i32 0		; <i8*>:23 [#uses=0]
	and i32 0, -2		; <i32>:24 [#uses=1]
	add i32 %24, -1		; <i32>:25 [#uses=0]
	bitcast [4 x i8]* %22 to i32*		; <i32*>:26 [#uses=3]
	getelementptr i32* %26, i32 1		; <i32*>:27 [#uses=0]
	getelementptr i32* %26, i32 2		; <i32*>:28 [#uses=0]
	getelementptr i32* %26, i32 3		; <i32*>:29 [#uses=0]
	br label %bb144

bb144:		; preds = %bb395, %bb16
	%idxEachField11.0773 = phi i32 [ 0, %bb16 ], [ %162, %bb395 ]		; <i32> [#uses=3]
	%mbYLeft.2776 = phi i32 [ 0, %bb16 ], [ %mbYLeft.2776, %bb395 ]		; <i32> [#uses=3]
	%mbXYLeft.2775 = phi i32 [ 0, %bb16 ], [ %mbXYLeft.2775, %bb395 ]		; <i32> [#uses=1]
	%mixedModeLeftEdgeOfMbFlag.2774 = phi i32 [ 0, %bb16 ], [ 0, %bb395 ]		; <i32> [#uses=0]
	%mbIndexLeft.2772 = phi i32 [ 0, %bb16 ], [ %mbIndexLeft.2772, %bb395 ]		; <i32> [#uses=2]
	%boundaryStrengthsV.1771 = phi i8* [ null, %bb16 ], [ %158, %bb395 ]		; <i8*> [#uses=2]
	%numEdgesToTest.1770 = phi i32 [ 4, %bb16 ], [ %numEdgesToTest.2, %bb395 ]		; <i32> [#uses=1]
	icmp eq i32 %idxEachField11.0773, 0		; <i1>:30 [#uses=0]
	getelementptr %struct.BiPartSrcDescriptor** null, i32 %mbIndexLeft.2772		; <%struct.BiPartSrcDescriptor**>:31 [#uses=1]
	load %struct.BiPartSrcDescriptor** %31, align 4		; <%struct.BiPartSrcDescriptor*>:32 [#uses=0]
	%fMacroblockHasNonZeroBS.4 = select i1 %21, i32 1, i32 0		; <i32> [#uses=1]
	%numEdgesToTest.2 = select i1 %21, i32 1, i32 %numEdgesToTest.1770		; <i32> [#uses=2]
	store i8 32, i8* %boundaryStrengthsV.1771, align 1
	br label %labelContinueEdgesLoopV

bb200:		; preds = %labelContinueEdgesLoopV
	lshr i32 %159, 28		; <i32>:33 [#uses=2]
	and i32 %160, %16		; <i32>:34 [#uses=1]
	icmp eq i32 %34, 0		; <i1>:35 [#uses=0]
	icmp eq i32 %160, 0		; <i1>:36 [#uses=3]
	zext i1 %36 to i32		; <i32>:37 [#uses=1]
	or i32 %37, -1		; <i32>:38 [#uses=1]
	or i32 %38, %33		; <i32>:39 [#uses=1]
	icmp eq i32 %39, 0		; <i1>:40 [#uses=1]
	br i1 %40, label %bb205, label %bb206

bb205:		; preds = %bb200
	store i8 32, i8* %158, align 1
	br label %labelContinueEdgesLoopV

bb206:		; preds = %bb200
	icmp eq i32 %33, 15		; <i1>:41 [#uses=1]
	br i1 %41, label %labelContinueEdgesLoopV, label %bb210.preheader

bb210.preheader:		; preds = %bb206
	add i32 %160, 0		; <i32>:42 [#uses=2]
	%bothcond657 = and i1 %36, %.not656		; <i1> [#uses=0]
	shl i32 %idxEachField11.0773, 1		; <i32>:43 [#uses=1]
	add i32 %43, 0		; <i32>:44 [#uses=0]
	shl i32 %mbYLeft.2776, 2		; <i32>:45 [#uses=0]
	add i32 %42, -1		; <i32>:46 [#uses=1]
	icmp eq i32 0, 0		; <i1>:47 [#uses=1]
	%brmerge689.not = and i1 %47, false		; <i1> [#uses=0]
	%bothcond659 = and i1 %36, %.not658		; <i1> [#uses=0]
	shl i32 %mbYLeft.2776, 1		; <i32>:48 [#uses=1]
	or i32 %48, 0		; <i32>:49 [#uses=1]
	shl i32 %49, 1		; <i32>:50 [#uses=0]
	add i32 0, 0		; <i32>:51 [#uses=2]
	mul i32 %51, 0		; <i32>:52 [#uses=1]
	add i32 %52, %42		; <i32>:53 [#uses=1]
	mul i32 %51, 0		; <i32>:54 [#uses=1]
	add i32 %46, %54		; <i32>:55 [#uses=1]
	getelementptr %struct.BiPartSrcDescriptor** null, i32 %53		; <%struct.BiPartSrcDescriptor**>:56 [#uses=1]
	load %struct.BiPartSrcDescriptor** %56, align 4		; <%struct.BiPartSrcDescriptor*>:57 [#uses=7]
	getelementptr %struct.BiPartSrcDescriptor** null, i32 %55		; <%struct.BiPartSrcDescriptor**>:58 [#uses=1]
	load %struct.BiPartSrcDescriptor** %58, align 4		; <%struct.BiPartSrcDescriptor*>:59 [#uses=5]
	icmp slt i32 %159, 0		; <i1>:60 [#uses=0]
	icmp eq %struct.BiPartSrcDescriptor* %57, %59		; <i1>:61 [#uses=0]
	bitcast %struct.BiPartSrcDescriptor* %57 to i16*		; <i16*>:62 [#uses=5]
	load i16* %62, align 2		; <i16>:63 [#uses=2]
	getelementptr i16* %62, i32 1		; <i16*>:64 [#uses=1]
	load i16* %64, align 2		; <i16>:65 [#uses=2]
	getelementptr i16* %62, i32 2		; <i16*>:66 [#uses=1]
	load i16* %66, align 2		; <i16>:67 [#uses=2]
	getelementptr i16* %62, i32 3		; <i16*>:68 [#uses=1]
	load i16* %68, align 2		; <i16>:69 [#uses=2]
	getelementptr i16* %62, i32 6		; <i16*>:70 [#uses=1]
	load i16* %70, align 2		; <i16>:71 [#uses=2]
	bitcast %struct.BiPartSrcDescriptor* %59 to i16*		; <i16*>:72 [#uses=5]
	load i16* %72, align 2		; <i16>:73 [#uses=2]
	getelementptr i16* %72, i32 1		; <i16*>:74 [#uses=1]
	load i16* %74, align 2		; <i16>:75 [#uses=2]
	getelementptr i16* %72, i32 2		; <i16*>:76 [#uses=1]
	load i16* %76, align 2		; <i16>:77 [#uses=2]
	getelementptr i16* %72, i32 3		; <i16*>:78 [#uses=1]
	load i16* %78, align 2		; <i16>:79 [#uses=2]
	getelementptr i16* %72, i32 6		; <i16*>:80 [#uses=1]
	load i16* %80, align 2		; <i16>:81 [#uses=2]
	sub i16 %63, %73		; <i16>:82 [#uses=3]
	sub i16 %65, %75		; <i16>:83 [#uses=3]
	sub i16 %67, %77		; <i16>:84 [#uses=3]
	sub i16 %69, %79		; <i16>:85 [#uses=3]
	sub i16 %71, %81		; <i16>:86 [#uses=3]
	sub i16 0, %82		; <i16>:87 [#uses=1]
	icmp slt i16 %82, 0		; <i1>:88 [#uses=1]
	%. = select i1 %88, i16 %87, i16 %82		; <i16> [#uses=1]
	sub i16 0, %83		; <i16>:89 [#uses=1]
	icmp slt i16 %83, 0		; <i1>:90 [#uses=1]
	%.660 = select i1 %90, i16 %89, i16 %83		; <i16> [#uses=1]
	sub i16 0, %84		; <i16>:91 [#uses=1]
	icmp slt i16 %84, 0		; <i1>:92 [#uses=1]
	%.661 = select i1 %92, i16 %91, i16 %84		; <i16> [#uses=1]
	sub i16 0, %85		; <i16>:93 [#uses=1]
	icmp slt i16 %85, 0		; <i1>:94 [#uses=1]
	%.662 = select i1 %94, i16 %93, i16 %85		; <i16> [#uses=1]
	sub i16 0, %86		; <i16>:95 [#uses=1]
	icmp slt i16 %86, 0		; <i1>:96 [#uses=1]
	%.663 = select i1 %96, i16 %95, i16 %86		; <i16> [#uses=1]
	getelementptr %struct.BiPartSrcDescriptor* %57, i32 0, i32 0, i32 0, i32 1, i32 0		; <i8*>:97 [#uses=1]
	load i8* %97, align 1		; <i8>:98 [#uses=1]
	zext i8 %98 to i32		; <i32>:99 [#uses=1]
	getelementptr %struct.BiPartSrcDescriptor* %57, i32 0, i32 0, i32 0, i32 1, i32 1		; <i8*>:100 [#uses=1]
	load i8* %100, align 1		; <i8>:101 [#uses=1]
	zext i8 %101 to i32		; <i32>:102 [#uses=1]
	getelementptr %struct.BiPartSrcDescriptor* %57, i32 0, i32 0, i32 0, i32 3, i32 0		; <i8*>:103 [#uses=1]
	load i8* %103, align 1		; <i8>:104 [#uses=2]
	zext i8 %104 to i32		; <i32>:105 [#uses=1]
	getelementptr %struct.BiPartSrcDescriptor* %59, i32 0, i32 0, i32 0, i32 3, i32 0		; <i8*>:106 [#uses=1]
	load i8* %106, align 1		; <i8>:107 [#uses=2]
	zext i8 %107 to i32		; <i32>:108 [#uses=1]
	getelementptr %struct.BiPartSrcDescriptor* %57, i32 0, i32 0, i32 0, i32 3, i32 1		; <i8*>:109 [#uses=1]
	load i8* %109, align 1		; <i8>:110 [#uses=1]
	zext i8 %110 to i32		; <i32>:111 [#uses=1]
	getelementptr %struct.BiPartSrcDescriptor* %59, i32 0, i32 0, i32 0, i32 3, i32 1		; <i8*>:112 [#uses=1]
	load i8* %112, align 1		; <i8>:113 [#uses=1]
	zext i8 %113 to i32		; <i32>:114 [#uses=1]
	lshr i32 %99, 4		; <i32>:115 [#uses=1]
	and i32 %115, 2		; <i32>:116 [#uses=1]
	lshr i32 %102, 5		; <i32>:117 [#uses=1]
	or i32 %116, %117		; <i32>:118 [#uses=3]
	icmp eq i32 %118, 0		; <i1>:119 [#uses=0]
	icmp eq i32 %118, 1		; <i1>:120 [#uses=1]
	br i1 %120, label %bb297, label %bb298

bb297:		; preds = %bb210.preheader
	br label %bb298

bb298:		; preds = %bb297, %bb210.preheader
	%vu8Mask_0.1 = phi i8 [ -1, %bb297 ], [ 0, %bb210.preheader ]		; <i8> [#uses=1]
	%vu8Mask_1.1 = phi i8 [ -1, %bb297 ], [ 0, %bb210.preheader ]		; <i8> [#uses=1]
	%vu8Mask_2.1 = phi i8 [ -1, %bb297 ], [ 0, %bb210.preheader ]		; <i8> [#uses=0]
	%vu8Mask_3.1 = phi i8 [ -1, %bb297 ], [ 0, %bb210.preheader ]		; <i8> [#uses=1]
	%vu8Mask_4.1 = phi i8 [ 0, %bb297 ], [ 0, %bb210.preheader ]		; <i8> [#uses=0]
	%vu8Mask_5.1 = phi i8 [ 0, %bb297 ], [ 0, %bb210.preheader ]		; <i8> [#uses=1]
	%vu8Mask_6.1 = phi i8 [ 0, %bb297 ], [ 0, %bb210.preheader ]		; <i8> [#uses=0]
	%vu8Mask_7.1 = phi i8 [ 0, %bb297 ], [ 0, %bb210.preheader ]		; <i8> [#uses=1]
	%vu8Mask_12.1 = phi i8 [ -1, %bb297 ], [ 0, %bb210.preheader ]		; <i8> [#uses=0]
	%vu8Mask_13.1 = phi i8 [ -1, %bb297 ], [ 0, %bb210.preheader ]		; <i8> [#uses=0]
	icmp eq i32 %118, 2		; <i1>:121 [#uses=0]
	and i8 %vu8Mask_1.1, 3		; <i8>:122 [#uses=0]
	and i8 %vu8Mask_5.1, 3		; <i8>:123 [#uses=0]
	and i8 %vu8Mask_3.1, %18		; <i8>:124 [#uses=0]
	and i8 %vu8Mask_7.1, %18		; <i8>:125 [#uses=0]
	icmp eq i8 %104, %107		; <i1>:126 [#uses=1]
	br i1 %126, label %bb328, label %bb303

bb303:		; preds = %bb298
	call i16 @llvm.bswap.i16( i16 %81 )		; <i16>:127 [#uses=1]
	sub i16 %63, %77		; <i16>:128 [#uses=3]
	sub i16 %65, %79		; <i16>:129 [#uses=3]
	sub i16 %67, %73		; <i16>:130 [#uses=3]
	sub i16 %69, %75		; <i16>:131 [#uses=3]
	sub i16 %71, %127		; <i16>:132 [#uses=3]
	sub i16 0, %128		; <i16>:133 [#uses=1]
	icmp slt i16 %128, 0		; <i1>:134 [#uses=1]
	%.673 = select i1 %134, i16 %133, i16 %128		; <i16> [#uses=1]
	sub i16 0, %129		; <i16>:135 [#uses=1]
	icmp slt i16 %129, 0		; <i1>:136 [#uses=1]
	%.674 = select i1 %136, i16 %135, i16 %129		; <i16> [#uses=1]
	sub i16 0, %130		; <i16>:137 [#uses=1]
	icmp slt i16 %130, 0		; <i1>:138 [#uses=1]
	%.675 = select i1 %138, i16 %137, i16 %130		; <i16> [#uses=1]
	sub i16 0, %131		; <i16>:139 [#uses=1]
	icmp slt i16 %131, 0		; <i1>:140 [#uses=1]
	%.676 = select i1 %140, i16 %139, i16 %131		; <i16> [#uses=1]
	sub i16 0, %132		; <i16>:141 [#uses=1]
	icmp slt i16 %132, 0		; <i1>:142 [#uses=1]
	%.677 = select i1 %142, i16 %141, i16 %132		; <i16> [#uses=1]
	br label %bb328

bb328:		; preds = %bb303, %bb298
	%vu16Delta_0.0 = phi i16 [ %.673, %bb303 ], [ %., %bb298 ]		; <i16> [#uses=1]
	%vu16Delta_1.0 = phi i16 [ %.674, %bb303 ], [ %.660, %bb298 ]		; <i16> [#uses=0]
	%vu16Delta_2.0 = phi i16 [ %.675, %bb303 ], [ %.661, %bb298 ]		; <i16> [#uses=0]
	%vu16Delta_3.0 = phi i16 [ %.676, %bb303 ], [ %.662, %bb298 ]		; <i16> [#uses=0]
	%vu16Delta_6.0 = phi i16 [ %.677, %bb303 ], [ %.663, %bb298 ]		; <i16> [#uses=0]
	lshr i16 %vu16Delta_0.0, 8		; <i16>:143 [#uses=1]
	trunc i16 %143 to i8		; <i8>:144 [#uses=1]
	and i8 %144, %vu8Mask_0.1		; <i8>:145 [#uses=1]
	icmp eq i8 %145, 0		; <i1>:146 [#uses=0]
	sub i32 %105, %114		; <i32>:147 [#uses=1]
	sub i32 %111, %108		; <i32>:148 [#uses=1]
	or i32 %147, %148		; <i32>:149 [#uses=1]
	icmp eq i32 %149, 0		; <i1>:150 [#uses=0]
	call i32 @_Z54S_CalcIfLargeMVDeltaForBMbBothPredictionsFromSameFramePK19BiPartSrcDescriptorS1_ijj( %struct.BiPartSrcDescriptor* %57, %struct.BiPartSrcDescriptor* %59, i32 %19, i32 0, i32 0 ) nounwind 		; <i32>:151 [#uses=0]
	unreachable

labelContinueEdgesLoopV:		; preds = %bb206, %bb205, %bb144
	%fEdgeHasNonZeroBS.0 = phi i32 [ 0, %bb205 ], [ 0, %bb144 ], [ 1, %bb206 ]		; <i32> [#uses=2]
	%fMacroblockHasNonZeroBS.6 = phi i32 [ %152, %bb205 ], [ %fMacroblockHasNonZeroBS.4, %bb144 ], [ %152, %bb206 ]		; <i32> [#uses=1]
	%ixEdge.1 = phi i32 [ %160, %bb205 ], [ 0, %bb144 ], [ %160, %bb206 ]		; <i32> [#uses=1]
	%bfNZ12.2 = phi i32 [ %159, %bb205 ], [ 0, %bb144 ], [ %159, %bb206 ]		; <i32> [#uses=1]
	%boundaryStrengthsV.3 = phi i8* [ %158, %bb205 ], [ %boundaryStrengthsV.1771, %bb144 ], [ %158, %bb206 ]		; <i8*> [#uses=3]
	or i32 %fMacroblockHasNonZeroBS.6, %fEdgeHasNonZeroBS.0		; <i32>:152 [#uses=2]
	load i8* %boundaryStrengthsV.3, align 1		; <i8>:153 [#uses=1]
	trunc i32 %fEdgeHasNonZeroBS.0 to i8		; <i8>:154 [#uses=1]
	shl i8 %154, 5		; <i8>:155 [#uses=1]
	xor i8 %155, 32		; <i8>:156 [#uses=1]
	or i8 %153, %156		; <i8>:157 [#uses=1]
	store i8 %157, i8* %boundaryStrengthsV.3, align 1
	getelementptr i8* %boundaryStrengthsV.3, i32 4		; <i8*>:158 [#uses=4]
	shl i32 %bfNZ12.2, 4		; <i32>:159 [#uses=4]
	add i32 %ixEdge.1, 1		; <i32>:160 [#uses=6]
	icmp ult i32 %160, %numEdgesToTest.2		; <i1>:161 [#uses=1]
	br i1 %161, label %bb200, label %bb395

bb395:		; preds = %labelContinueEdgesLoopV
	add i32 %idxEachField11.0773, 1		; <i32>:162 [#uses=2]
	icmp ugt i32 %162, 0		; <i1>:163 [#uses=1]
	br i1 %163, label %bb398, label %bb144

bb398:		; preds = %bb395
	call void asm sideeffect "dcbt $0, $1", "b%,r,~{memory}"( i32 19, i32* null ) nounwind 
	unreachable

bb642:		; preds = %entry
	ret i32 0
}

declare i16 @llvm.bswap.i16(i16) nounwind readnone 

declare i8* @jvtNewPtrVectorAligned(i32)

declare i8* @jvtNewPtr(i32)

declare i8* @jvtNewPtrMemAligned(i32)

declare %struct.Mutex* @MutexNew()

declare i8* @_Znam(i32)

declare i32 @_Z24LoopFilter_FilterMbGroupP14LoopFilterInfoP11FramePixelsP22FrameMotionVectorCacheP19ThreadedBatchStructjjij(%struct.LoopFilterInfo*, %struct.FramePixels*, %struct.FrameMotionVectorCache*, %struct.ThreadedBatch*, i32, i32, i32, i32)

declare void @MutexLock(%struct.Mutex*)

declare void @MutexUnlock(%struct.Mutex*)

declare i32 @_Z35LoopFilter_Internal_FilterLumaPlanePK14LoopFilterInfojjjjj(%struct.LoopFilterInfo*, i32, i32, i32, i32, i32)

declare i32 @_Z37LoopFilter_Internal_FilterChromaPlanePK14LoopFilterInfojjjjj(%struct.LoopFilterInfo*, i32, i32, i32, i32, i32)

declare void @_Z44LoopFilter_Internal_filter_macroblock_chromaPK14LoopFilterInfoPhS2_iiiPK30PerMacroblockBoundaryStrengthsjj(%struct.LoopFilterInfo*, i8*, i8*, i32, i32, i32, %struct.PerMacroblockBoundaryStrengths*, i32, i32) nounwind 

declare i32 @_Z42LoopFilter_Internal_FilterChromaPlaneMBAFFPK14LoopFilterInfojjj(%struct.LoopFilterInfo*, i32, i32, i32) nounwind 

declare i32 @_Z26LF_Threading2_ProcessTasksP14LoopFilterInfoP11FramePixelsP22FrameMotionVectorCacheij(%struct.LoopFilterInfo*, %struct.FramePixels*, %struct.FrameMotionVectorCache*, i32, i32)

declare i32 @_Z46LoopFilter_Internal_CalculateBoundaryStrengthsPK14LoopFilterInfoP22FrameMotionVectorCachejj(%struct.LoopFilterInfo*, %struct.FrameMotionVectorCache*, i32, i32)

declare i32 @_Z44LoopFilter_Internal_FilterLumaChromaPlane_PPP14LoopFilterInfojjjjj(%struct.LoopFilterInfo*, i32, i32, i32, i32, i32)

declare i32 @_Z22LoopFilter_FilterFrameP14LoopFilterInfoP11FramePixelsP22FrameMotionVectorCacheP19ThreadedBatchStructij(%struct.LoopFilterInfo*, %struct.FramePixels*, %struct.FrameMotionVectorCache*, %struct.ThreadedBatch*, i32, i32)

declare void @_Z34LF_Threading2_ProcessTasks_WrapperPv(i8*)

declare void @llvm.memset.i64(i8*, i8, i64, i32) nounwind 
