1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker %struct.AVClass = type { i8*, i8* (i8*)*, %struct.AVOption* } 4*9880d681SAndroid Build Coastguard Worker %struct.AVCodec = type { i8*, i32, i32, i32, i32 (%struct.AVCodecContext*)*, i32 (%struct.AVCodecContext*, i8*, i32, i8*)*, i32 (%struct.AVCodecContext*)*, i32 (%struct.AVCodecContext*, i8*, i32*, i8*, i32)*, i32, %struct.AVCodec*, void (%struct.AVCodecContext*)*, %struct.AVRational*, i32* } 5*9880d681SAndroid Build Coastguard Worker %struct.AVCodecContext = type { %struct.AVClass*, i32, i32, i32, i32, i32, i8*, i32, %struct.AVRational, i32, i32, i32, i32, i32, void (%struct.AVCodecContext*, %struct.AVFrame*, i32*, i32, i32, i32)*, i32, i32, i32, i32, i32, i32, i32, float, float, i32, i32, i32, i32, float, i32, i32, i32, %struct.AVCodec*, i8*, i32, i32, void (%struct.AVCodecContext*, i8*, i32, i32)*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, [32 x i8], i32, i32, i32, i32, i32, i32, i32, float, i32, i32 (%struct.AVCodecContext*, %struct.AVFrame*)*, void (%struct.AVCodecContext*, %struct.AVFrame*)*, i32, i32, i32, i32, i8*, i8*, float, float, i32, %struct.RcOverride*, i32, i8*, i32, i32, i32, float, float, float, float, i32, float, float, float, float, float, i32, i32, i32, i32*, i32, i32, i32, i32, %struct.AVRational, %struct.AVFrame*, i32, i32, [4 x i64], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 (%struct.AVCodecContext*, i32*)*, i32, i32, i32, i32, i32, i32, i8*, i32, i32, i32, i32, i32, i32, i16*, i16*, i32, i32, i32, i32, %struct.AVPaletteControl*, i32, i32 (%struct.AVCodecContext*, %struct.AVFrame*)*, i32, i32, i32, i32, i32, i32, i32, i32 (%struct.AVCodecContext*, i32 (%struct.AVCodecContext*, i8*)*, i8**, i32*, i32)*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64 } 6*9880d681SAndroid Build Coastguard Worker %struct.AVEvalExpr = type opaque 7*9880d681SAndroid Build Coastguard Worker %struct.AVFrame = type { [4 x i8*], [4 x i32], [4 x i8*], i32, i32, i64, i32, i32, i32, i32, i32, i8*, i32, i8*, [2 x [2 x i16]*], i32*, i8, i8*, [4 x i64], i32, i32, i32, i32, i32, %struct.AVPanScan*, i32, i32, i16*, [2 x i8*] } 8*9880d681SAndroid Build Coastguard Worker %struct.AVOption = type opaque 9*9880d681SAndroid Build Coastguard Worker %struct.AVPaletteControl = type { i32, [256 x i32] } 10*9880d681SAndroid Build Coastguard Worker %struct.AVPanScan = type { i32, i32, i32, [3 x [2 x i16]] } 11*9880d681SAndroid Build Coastguard Worker %struct.AVRational = type { i32, i32 } 12*9880d681SAndroid Build Coastguard Worker %struct.DSPContext = type { void (i16*, i8*, i32)*, void (i16*, i8*, i8*, i32)*, void (i16*, i8*, i32)*, void (i16*, i8*, i32)*, void (i16*, i8*, i32)*, void (i8*, i16*, i32)*, void (i8*, i16*, i32)*, void (i8*, i8*, i32, i32, i32, i32, i32)*, void (i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32)*, void (i16*)*, i32 (i8*, i32)*, i32 (i8*, i32)*, [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], [5 x i32 (i8*, i8*, i8*, i32, i32)*], i32 (i8*, i16*, i32)*, [4 x [4 x void (i8*, i8*, i32, i32)*]], [4 x [4 x void (i8*, i8*, i32, i32)*]], [4 x [4 x void (i8*, i8*, i32, i32)*]], [4 x [4 x void (i8*, i8*, i32, i32)*]], [2 x void (i8*, i8*, i8*, i32, i32)*], [11 x void (i8*, i8*, i32, i32, i32)*], [11 x void (i8*, i8*, i32, i32, i32)*], [2 x [16 x void (i8*, i8*, i32)*]], [2 x [16 x void (i8*, i8*, i32)*]], [2 x [16 x void (i8*, i8*, i32)*]], [2 x [16 x void (i8*, i8*, i32)*]], [8 x void (i8*, i8*, i32)*], [3 x void (i8*, i8*, i32, i32, i32, i32)*], [3 x void (i8*, i8*, i32, i32, i32, i32)*], [3 x void (i8*, i8*, i32, i32, i32, i32)*], [4 x [16 x void (i8*, i8*, i32)*]], [4 x [16 x void (i8*, i8*, i32)*]], [4 x [16 x void (i8*, i8*, i32)*]], [4 x [16 x void (i8*, i8*, i32)*]], [10 x void (i8*, i32, i32, i32, i32)*], [10 x void (i8*, i8*, i32, i32, i32, i32, i32)*], [2 x [16 x void (i8*, i8*, i32)*]], [2 x [16 x void (i8*, i8*, i32)*]], void (i8*, i32, i32, i32, i32, i32, i32)*, void (i8*, i32, i32, i32, i32, i32, i32)*, void (i8*, i32, i32, i32, i32, i32, i32)*, void (i8*, i32, i32, i32, i32, i32, i32)*, void (i8*, i16*, i32)*, [2 x [4 x i32 (i8*, i8*, i8*, i32, i32)*]], void (i8*, i8*, i32)*, void (i8*, i8*, i8*, i32)*, void (i8*, i8*, i8*, i32, i32*, i32*)*, void (i32*, i32*, i32)*, void (i8*, i32, i32, i32, i8*)*, void (i8*, i32, i32, i32, i8*)*, void (i8*, i32, i32, i32, i8*)*, void (i8*, i32, i32, i32, i8*)*, void (i8*, i32, i32, i32)*, void (i8*, i32, i32, i32)*, void ([4 x [4 x i16]]*, i8*, [40 x i8]*, [40 x [2 x i16]]*, i32, i32, i32, i32, i32)*, void (i8*, i32, i32)*, void (i8*, i32, i32)*, void (i8*, i32)*, void (float*, float*, i32)*, void (float*, float*, i32)*, void (float*, float*, float*, i32)*, void (float*, float*, float*, float*, i32, i32, i32)*, void (i16*, float*, i32)*, void (i16*)*, void (i16*)*, void (i16*)*, void (i8*, i32, i16*)*, void (i8*, i32, i16*)*, [64 x i8], i32, i32 (i16*, i16*, i16*, i32)*, void (i16*, i16*, i32)*, void (i8*, i16*, i32)*, void (i8*, i16*, i32)*, void (i8*, i16*, i32)*, void (i8*, i16*, i32)*, void ([4 x i16]*)*, void (i32*, i32*, i32*, i32*, i32*, i32*, i32)*, void (i32*, i32)*, void (i8*, i32, i8**, i32, i32, i32, i32, i32, %struct.slice_buffer*, i32, i8*)*, void (i8*, i32, i32)*, [4 x void (i8*, i32, i8*, i32, i32, i32)*], void (i16*)*, void (i16*, i32)*, void (i16*, i32)*, void (i16*, i32)*, void (i8*, i32)*, void (i8*, i32)*, [16 x void (i8*, i8*, i32, i32)*] } 13*9880d681SAndroid Build Coastguard Worker %struct.FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] } 14*9880d681SAndroid Build Coastguard Worker %struct.GetBitContext = type { i8*, i8*, i32*, i32, i32, i32, i32 } 15*9880d681SAndroid Build Coastguard Worker %struct.MJpegContext = type opaque 16*9880d681SAndroid Build Coastguard Worker %struct.MotionEstContext = type { %struct.AVCodecContext*, i32, [4 x [2 x i32]], [4 x [2 x i32]], i8*, i8*, [2 x i8*], i8*, i32, i32*, i32*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x [4 x i8*]], [4 x [4 x i8*]], i32, i32, i32, i32, i32, [4 x void (i8*, i8*, i32, i32)*]*, [4 x void (i8*, i8*, i32, i32)*]*, [16 x void (i8*, i8*, i32)*]*, [16 x void (i8*, i8*, i32)*]*, [4097 x i8]*, i8*, i32 (%struct.MpegEncContext*, i32*, i32*, i32, i32, i32, i32, i32)* } 17*9880d681SAndroid Build Coastguard Worker %struct.MpegEncContext = type { %struct.AVCodecContext*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.PutBitContext, i32, i32, i32, i32, i32, i32, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.Picture*, %struct.Picture**, %struct.Picture**, i32, i32, [8 x %struct.MpegEncContext*], %struct.Picture, %struct.Picture, %struct.Picture, %struct.Picture, %struct.Picture*, %struct.Picture*, %struct.Picture*, [3 x i8*], [3 x i32], i16*, [3 x i16*], [20 x i16], i32, i32, i8*, i8*, i8*, i8*, i8*, [16 x i16]*, [3 x [16 x i16]*], i32, i8*, i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i32, i32, i32, i32, i32*, i32, i32, i32, i32, i32, i32, i32, [5 x i32], i32, i32, i32, i32, %struct.DSPContext, i32, i32, [2 x i16]*, [2 x i16]*, [2 x i16]*, [2 x i16]*, [2 x i16]*, [2 x i16]*, [2 x [2 x [2 x i16]*]], [2 x [2 x [2 x [2 x i16]*]]], [2 x i16]*, [2 x i16]*, [2 x i16]*, [2 x i16]*, [2 x i16]*, [2 x i16]*, [2 x [2 x [2 x i16]*]], [2 x [2 x [2 x [2 x i16]*]]], [2 x i8*], [2 x [2 x i8*]], i32, i32, i32, [2 x [4 x [2 x i32]]], [2 x [2 x i32]], [2 x [2 x [2 x i32]]], i8*, [2 x [64 x i16]], %struct.MotionEstContext, i32, i32, i32, i32, i32, i32, i16*, [6 x i32], [6 x i32], [3 x i8*], i32*, [64 x i16], [64 x i16], [64 x i16], [64 x i16], i32, i32, i32, i32, i32, i8*, i8*, i8*, i8*, i8*, i8*, [8 x i32], [64 x i32]*, [64 x i32]*, [2 x [64 x i16]]*, [2 x [64 x i16]]*, [12 x i32], %struct.ScanTable, %struct.ScanTable, %struct.ScanTable, %struct.ScanTable, [64 x i32]*, [2 x i32], [64 x i16]*, i8*, i64, i64, i32, i32, %struct.RateControlContext, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i32, i32, %struct.GetBitContext, i32, i32, i32, %struct.ParseContext, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i16, i16, i16, i16, i32, i32, i32, i32, i32, i32, i32, i32, i32, [2 x [2 x i32]], [2 x [2 x i32]], [2 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.PutBitContext, %struct.PutBitContext, i32, i32, i32, i32, i32, i32, i8*, i32, i32, i32, i32, i32, [3 x i32], %struct.MJpegContext*, [3 x i32], [3 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [2 x [65 x [65 x [2 x i32]]]]*, i32, i32, %struct.GetBitContext, i32, i32, i32, i8*, i32, [2 x [2 x i32]], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [2 x i32], i32, i32, i32, i32, i8*, i32, [12 x i16*], [64 x i16]*, [8 x [64 x i16]]*, i32 (%struct.MpegEncContext*, [64 x i16]*)*, void (%struct.MpegEncContext*, i16*, i32, i32)*, void (%struct.MpegEncContext*, i16*, i32, i32)*, void (%struct.MpegEncContext*, i16*, i32, i32)*, void (%struct.MpegEncContext*, i16*, i32, i32)*, void (%struct.MpegEncContext*, i16*, i32, i32)*, void (%struct.MpegEncContext*, i16*, i32, i32)*, void (%struct.MpegEncContext*, i16*, i32, i32)*, void (%struct.MpegEncContext*, i16*, i32, i32)*, void (%struct.MpegEncContext*, i16*, i32, i32)*, void (%struct.MpegEncContext*, i16*, i32, i32)*, i32 (%struct.MpegEncContext*, i16*, i32, i32, i32*)*, i32 (%struct.MpegEncContext*, i16*, i32, i32, i32*)*, void (%struct.MpegEncContext*, i16*)* } 18*9880d681SAndroid Build Coastguard Worker %struct.ParseContext = type { i8*, i32, i32, i32, i32, i32, i32, i32 } 19*9880d681SAndroid Build Coastguard Worker %struct.Picture = type { [4 x i8*], [4 x i32], [4 x i8*], i32, i32, i64, i32, i32, i32, i32, i32, i8*, i32, i8*, [2 x [2 x i16]*], i32*, i8, i8*, [4 x i64], i32, i32, i32, i32, i32, %struct.AVPanScan*, i32, i32, i16*, [2 x i8*], [3 x i8*], [2 x [2 x i16]*], i32*, [2 x i32], i32, i32, i32, i32, [2 x [16 x i32]], [2 x i32], i32, i32, i16*, i16*, i8*, i32*, i32 } 20*9880d681SAndroid Build Coastguard Worker %struct.Predictor = type { double, double, double } 21*9880d681SAndroid Build Coastguard Worker %struct.PutBitContext = type { i32, i32, i8*, i8*, i8* } 22*9880d681SAndroid Build Coastguard Worker %struct.RateControlContext = type { %struct.FILE*, i32, %struct.RateControlEntry*, double, [5 x %struct.Predictor], double, double, double, double, double, [5 x double], i32, i32, [5 x i64], [5 x i64], [5 x i64], [5 x i64], [5 x i32], i32, i8*, float, i32, %struct.AVEvalExpr* } 23*9880d681SAndroid Build Coastguard Worker %struct.RateControlEntry = type { i32, float, i32, i32, i32, i32, i32, i64, i32, float, i32, i32, i32, i32, i32, i32 } 24*9880d681SAndroid Build Coastguard Worker %struct.RcOverride = type { i32, i32, i32, float } 25*9880d681SAndroid Build Coastguard Worker %struct.ScanTable = type { i8*, [64 x i8], [64 x i8] } 26*9880d681SAndroid Build Coastguard Worker %struct._IO_marker = type { %struct._IO_marker*, %struct.FILE*, i32 } 27*9880d681SAndroid Build Coastguard Worker %struct.slice_buffer = type opaque 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerdefine float @ff_rate_estimate_qscale(%struct.MpegEncContext* %s, i32 %dry_run) { 30*9880d681SAndroid Build Coastguard Workerentry: 31*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_false163, label %cond_true135 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Workercond_true135: ; preds = %entry 34*9880d681SAndroid Build Coastguard Worker ret float 0.000000e+00 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workercond_false163: ; preds = %entry 37*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true203, label %cond_next211 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Workercond_true203: ; preds = %cond_false163 40*9880d681SAndroid Build Coastguard Worker ret float 0.000000e+00 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workercond_next211: ; preds = %cond_false163 43*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_false243, label %cond_true220 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workercond_true220: ; preds = %cond_next211 46*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_next237, label %cond_true225 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workercond_true225: ; preds = %cond_true220 49*9880d681SAndroid Build Coastguard Worker ret float 0.000000e+00 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workercond_next237: ; preds = %cond_true220 52*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_false785, label %cond_true735 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Workercond_false243: ; preds = %cond_next211 55*9880d681SAndroid Build Coastguard Worker ret float 0.000000e+00 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workercond_true735: ; preds = %cond_next237 58*9880d681SAndroid Build Coastguard Worker ret float 0.000000e+00 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Workercond_false785: ; preds = %cond_next237 61*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true356.i.preheader, label %bb359.i 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Workercond_true356.i.preheader: ; preds = %cond_false785 64*9880d681SAndroid Build Coastguard Worker %tmp116117.i = zext i8 0 to i32 ; <i32> [#uses=1] 65*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_false.i, label %cond_next159.i 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Workercond_false.i: ; preds = %cond_true356.i.preheader 68*9880d681SAndroid Build Coastguard Worker ret float 0.000000e+00 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Workercond_next159.i: ; preds = %cond_true356.i.preheader 71*9880d681SAndroid Build Coastguard Worker %tmp178.i = add i32 %tmp116117.i, -128 ; <i32> [#uses=2] 72*9880d681SAndroid Build Coastguard Worker %tmp181.i = mul i32 %tmp178.i, %tmp178.i ; <i32> [#uses=1] 73*9880d681SAndroid Build Coastguard Worker %tmp181182.i = sitofp i32 %tmp181.i to float ; <float> [#uses=1] 74*9880d681SAndroid Build Coastguard Worker %tmp199200.pn.in.i = fmul float %tmp181182.i, 0.000000e+00 ; <float> [#uses=1] 75*9880d681SAndroid Build Coastguard Worker %tmp199200.pn.i = fpext float %tmp199200.pn.in.i to double ; <double> [#uses=1] 76*9880d681SAndroid Build Coastguard Worker %tmp201.pn.i = fsub double 1.000000e+00, %tmp199200.pn.i ; <double> [#uses=1] 77*9880d681SAndroid Build Coastguard Worker %factor.2.in.i = fmul double 0.000000e+00, %tmp201.pn.i ; <double> [#uses=1] 78*9880d681SAndroid Build Coastguard Worker %factor.2.i = fptrunc double %factor.2.in.i to float ; <float> [#uses=1] 79*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_next312.i, label %cond_false222.i 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Workercond_false222.i: ; preds = %cond_next159.i 82*9880d681SAndroid Build Coastguard Worker ret float 0.000000e+00 83*9880d681SAndroid Build Coastguard Worker 84*9880d681SAndroid Build Coastguard Workercond_next312.i: ; preds = %cond_next159.i 85*9880d681SAndroid Build Coastguard Worker %tmp313314.i = fpext float %factor.2.i to double ; <double> [#uses=0] 86*9880d681SAndroid Build Coastguard Worker ret float 0.000000e+00 87*9880d681SAndroid Build Coastguard Worker 88*9880d681SAndroid Build Coastguard Workerbb359.i: ; preds = %cond_false785 89*9880d681SAndroid Build Coastguard Worker ret float 0.000000e+00 90*9880d681SAndroid Build Coastguard Worker} 91