All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: main
    functionSourceFile: /src/dav1d/tests/header_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetTickCount
      Src: /src/dav1d/tests/seek_stress.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: get_seed
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 0
    functionsReached:
    - GetTickCount
    linkageType: ''
    returnType: unsigned
    signature: unsigned get_seed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mach_absolute_time
      Src: /src/dav1d/tests/seek_stress.c:62,1
    - Dst: clock_gettime
      Src: /src/dav1d/tests/seek_stress.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: get_seed
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - mach_absolute_time
    linkageType: ''
    returnType: unsigned
    signature: unsigned get_seed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - seed
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: xor128_srand
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor128_srand(unsigned seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: xor128_rand
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xor128_rand(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/dav1d/tests/seek_stress.c:102,1
    - Dst: dav1d_send_data
      Src: /src/dav1d/tests/seek_stress.c:103,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tests/seek_stress.c:104,1
    - Dst: fprintf
      Src: /src/dav1d/tests/seek_stress.c:105,1
    - Dst: strerror
      Src: /src/dav1d/tests/seek_stress.c:106,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tests/seek_stress.c:106,1
    - Dst: dav1d_get_picture
      Src: /src/dav1d/tests/seek_stress.c:110,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tests/seek_stress.c:111,1
    - Dst: fprintf
      Src: /src/dav1d/tests/seek_stress.c:112,1
    - Dst: strerror
      Src: /src/dav1d/tests/seek_stress.c:113,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tests/seek_stress.c:113,1
    - Dst: dav1d_picture_unref
      Src: /src/dav1d/tests/seek_stress.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - p
    - c
    - data
    argTypes:
    - Dav1dPicture*
    - Dav1dContext*
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 118
    functionName: decode_frame
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 0
    functionsReached:
    - dav1d_picture_unref
    - dav1d_get_picture
    - memset
    - dav1d_send_data
    - DAV1D_ERR
    - strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int decode_frame(Dav1dPicture *const p,\n                               Dav1dContext
      *const c, Dav1dData *const data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xor128_rand
      Src: /src/dav1d/tests/seek_stress.c:125,1
    - Dst: decode_frame
      Src: /src/dav1d/tests/seek_stress.c:127,1
    - Dst: input_read
      Src: /src/dav1d/tests/seek_stress.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - in
    - c
    - data
    - fps
    argTypes:
    - DemuxerContext*
    - Dav1dContext*
    - Dav1dData*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: decode_rand
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 0
    functionsReached:
    - xor128_rand
    - decode_frame
    - input_read
    linkageType: ''
    returnType: int
    signature: "int decode_rand(DemuxerContext *const in, Dav1dContext *const c,\n
      \                      Dav1dData *const data, const double fps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_frame
      Src: /src/dav1d/tests/seek_stress.c:138,1
    - Dst: input_read
      Src: /src/dav1d/tests/seek_stress.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - in
    - c
    - data
    argTypes:
    - DemuxerContext*
    - Dav1dContext*
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: decode_all
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 0
    functionsReached:
    - decode_frame
    - input_read
    linkageType: ''
    returnType: int
    signature: "int decode_all(DemuxerContext *const in,\n                      Dav1dContext
      *const c, Dav1dData *const data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: input_seek
      Src: /src/dav1d/tests/seek_stress.c:147,1
    - Dst: input_read
      Src: /src/dav1d/tests/seek_stress.c:149,1
    - Dst: dav1d_parse_sequence_header
      Src: /src/dav1d/tests/seek_stress.c:150,1
    - Dst: dav1d_flush
      Src: /src/dav1d/tests/seek_stress.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - in
    - c
    - pts
    - data
    argTypes:
    - DemuxerContext*
    - Dav1dContext*
    - uint64_t
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: seek
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 1
    functionsReached:
    - input_read
    - dav1d_parse_sequence_header
    - dav1d_flush
    - input_seek
    linkageType: ''
    returnType: int
    signature: "int seek(DemuxerContext *const in, Dav1dContext *const c,\n                const
      uint64_t pts, Dav1dData *const data)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_version
      Src: /src/dav1d/tests/seek_stress.c:156,1
    - Dst: strcmp
      Src: /src/dav1d/tests/seek_stress.c:157,1
    - Dst: fprintf
      Src: /src/dav1d/tests/seek_stress.c:158,1
    - Dst: xor128_srand
      Src: /src/dav1d/tests/seek_stress.c:172,1
    - Dst: get_seed
      Src: /src/dav1d/tests/seek_stress.c:172,1
    - Dst: parse
      Src: /src/dav1d/tests/seek_stress.c:173,1
    - Dst: input_open
      Src: /src/dav1d/tests/seek_stress.c:175,1
    - Dst: dav1d_open
      Src: /src/dav1d/tests/seek_stress.c:181,1
    - Dst: FRAME_OFFSET_TO_PTS
      Src: /src/dav1d/tests/seek_stress.c:196,1
    - Dst: xor128_rand
      Src: /src/dav1d/tests/seek_stress.c:196,1
    - Dst: seek
      Src: /src/dav1d/tests/seek_stress.c:197,1
    - Dst: decode_rand
      Src: /src/dav1d/tests/seek_stress.c:198,1
    - Dst: TS_TO_PTS
      Src: /src/dav1d/tests/seek_stress.c:200,1
    - Dst: xor128_rand
      Src: /src/dav1d/tests/seek_stress.c:207,1
    - Dst: xor128_rand
      Src: /src/dav1d/tests/seek_stress.c:208,1
    - Dst: FRAME_OFFSET_TO_PTS
      Src: /src/dav1d/tests/seek_stress.c:209,1
    - Dst: llround
      Src: /src/dav1d/tests/seek_stress.c:210,1
    - Dst: TS_TO_PTS
      Src: /src/dav1d/tests/seek_stress.c:211,1
    - Dst: FRAME_OFFSET_TO_PTS
      Src: /src/dav1d/tests/seek_stress.c:212,1
    - Dst: seek
      Src: /src/dav1d/tests/seek_stress.c:213,1
    - Dst: FRAME_OFFSET_TO_PTS
      Src: /src/dav1d/tests/seek_stress.c:213,1
    - Dst: TS_TO_PTS
      Src: /src/dav1d/tests/seek_stress.c:214,1
    - Dst: seek
      Src: /src/dav1d/tests/seek_stress.c:218,1
    - Dst: seek
      Src: /src/dav1d/tests/seek_stress.c:219,1
    - Dst: decode_rand
      Src: /src/dav1d/tests/seek_stress.c:220,1
    - Dst: TS_TO_PTS
      Src: /src/dav1d/tests/seek_stress.c:221,1
    - Dst: seek
      Src: /src/dav1d/tests/seek_stress.c:229,1
    - Dst: FRAME_OFFSET_TO_PTS
      Src: /src/dav1d/tests/seek_stress.c:229,1
    - Dst: seek
      Src: /src/dav1d/tests/seek_stress.c:233,1
    - Dst: FRAME_OFFSET_TO_PTS
      Src: /src/dav1d/tests/seek_stress.c:233,1
    - Dst: decode_all
      Src: /src/dav1d/tests/seek_stress.c:234,1
    - Dst: xor128_rand
      Src: /src/dav1d/tests/seek_stress.c:235,1
    - Dst: dav1d_flush
      Src: /src/dav1d/tests/seek_stress.c:236,1
    - Dst: input_close
      Src: /src/dav1d/tests/seek_stress.c:240,1
    - Dst: dav1d_close
      Src: /src/dav1d/tests/seek_stress.c:241,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 65
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 243
    functionName: main
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 0
    functionsReached:
    - xor128_rand
    - xor128_srand
    - decode_rand
    - dav1d_flush
    - dav1d_close
    - strcmp
    - decode_all
    - llround
    - dav1d_version
    - seek
    - input_close
    - parse
    - FRAME_OFFSET_TO_PTS
    - get_seed
    - TS_TO_PTS
    - dav1d_open
    - fprintf
    - input_open
    linkageType: ''
    returnType: int
    signature: int main(const int argc, char *const *const argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - foff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: FRAME_OFFSET_TO_PTS
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FRAME_OFFSET_TO_PTS(foff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ts
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: TS_TO_PTS
    functionSourceFile: /src/dav1d/tests/seek_stress.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TS_TO_PTS(ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:34,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:36,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:37,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - total_bits
    - spel_bits
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: gen_mv
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached:
    - rnd
    linkageType: ''
    returnType: int
    signature: int gen_mv(const int total_bits, int spel_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: ARRAY_SIZE
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(n)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: get_min_mv_val
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_min_mv_val(const int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:54,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:68,1
    - Dst: ARRAY_SIZE
      Src: /src/dav1d/tests/checkasm/refmvs.c:70,1
    - Dst: get_min_mv_val
      Src: /src/dav1d/tests/checkasm/refmvs.c:73,1
    - Dst: get_min_mv_val
      Src: /src/dav1d/tests/checkasm/refmvs.c:74,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:75,1
    - Dst: iclip
      Src: /src/dav1d/tests/checkasm/refmvs.c:76,1
    - Dst: ARRAY_SIZE
      Src: /src/dav1d/tests/checkasm/refmvs.c:81,1
    - Dst: get_min_mv_val
      Src: /src/dav1d/tests/checkasm/refmvs.c:84,1
    - Dst: get_min_mv_val
      Src: /src/dav1d/tests/checkasm/refmvs.c:85,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:86,1
    - Dst: iclip
      Src: /src/dav1d/tests/checkasm/refmvs.c:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - rb
    - ref2ref
    argTypes:
    - refmvs_temporal_block*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 91
    functionName: gen_tmv
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached:
    - rnd
    - iclip
    - ARRAY_SIZE
    - get_min_mv_val
    linkageType: ''
    returnType: void
    signature: void gen_tmv(refmvs_temporal_block *const rb, const uint8_t *const
      ref2ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:94,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: get_ref2cur
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached:
    - rnd
    linkageType: ''
    returnType: int
    signature: int get_ref2cur(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:104,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:126,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 128
    functionName: get_seqlen
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached:
    - rnd
    linkageType: ''
    returnType: int
    signature: int get_seqlen(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/dav1d/tests/checkasm/refmvs.c:134,1
    - Dst: imin
      Src: /src/dav1d/tests/checkasm/refmvs.c:135,1
    - Dst: imin
      Src: /src/dav1d/tests/checkasm/refmvs.c:138,1
    - Dst: gen_tmv
      Src: /src/dav1d/tests/checkasm/refmvs.c:141,1
    - Dst: get_seqlen
      Src: /src/dav1d/tests/checkasm/refmvs.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - rf
    - col_start8
    - col_end8
    - row_start8
    - row_end8
    argTypes:
    - refmvs_frame*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: init_rp_ref
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached:
    - gen_tmv
    - imax
    - imin
    - get_seqlen
    linkageType: ''
    returnType: void
    signature: "void init_rp_ref(refmvs_frame const *const rf,\n                               const
      int col_start8, const int col_end8,\n                               const int
      row_start8, const int row_end8)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/refmvs.c:163,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:164,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:166,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:167,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:170,1
    - Dst: get_ref2cur
      Src: /src/dav1d/tests/checkasm/refmvs.c:171,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:173,1
    - Dst: malloc
      Src: /src/dav1d/tests/checkasm/refmvs.c:178,1
    - Dst: init_rp_ref
      Src: /src/dav1d/tests/checkasm/refmvs.c:180,1
    - Dst: call_ref
      Src: /src/dav1d/tests/checkasm/refmvs.c:189,1
    - Dst: call_new
      Src: /src/dav1d/tests/checkasm/refmvs.c:191,1
    - Dst: fail
      Src: /src/dav1d/tests/checkasm/refmvs.c:199,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/refmvs.c:200,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/refmvs.c:202,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/refmvs.c:204,1
    - Dst: checkasm_bench_func
      Src: /src/dav1d/tests/checkasm/refmvs.c:209,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/refmvs.c:215,1
    - Dst: free
      Src: /src/dav1d/tests/checkasm/refmvs.c:219,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/refmvs.c:224,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dRefmvsDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 225
    functionName: check_load_tmvs
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached:
    - report
    - get_ref2cur
    - free
    - init_rp_ref
    - malloc
    - call_new
    - call_ref
    - fail
    - bench_new
    - checkasm_bench_func
    - rnd
    - fprintf
    - check_func
    linkageType: ''
    returnType: void
    signature: void check_load_tmvs(const Dav1dRefmvsDSPContext *const c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/refmvs.c:230,1
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/refmvs.c:231,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/refmvs.c:241,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:242,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:243,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:244,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:245,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:248,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:252,1
    - Dst: gen_mv
      Src: /src/dav1d/tests/checkasm/refmvs.c:256,1
    - Dst: gen_mv
      Src: /src/dav1d/tests/checkasm/refmvs.c:257,1
    - Dst: gen_mv
      Src: /src/dav1d/tests/checkasm/refmvs.c:258,1
    - Dst: gen_mv
      Src: /src/dav1d/tests/checkasm/refmvs.c:259,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:260,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:260,1
    - Dst: call_ref
      Src: /src/dav1d/tests/checkasm/refmvs.c:269,1
    - Dst: call_new
      Src: /src/dav1d/tests/checkasm/refmvs.c:271,1
    - Dst: fail
      Src: /src/dav1d/tests/checkasm/refmvs.c:278,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/refmvs.c:279,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/refmvs.c:281,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/refmvs.c:283,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:292,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:293,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/refmvs.c:296,1
    - Dst: alternate
      Src: /src/dav1d/tests/checkasm/refmvs.c:296,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/refmvs.c:300,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dRefmvsDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 301
    functionName: check_save_tmvs
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached:
    - report
    - ALIGN_STK_64
    - bench_new
    - call_new
    - call_ref
    - fail
    - gen_mv
    - rnd
    - alternate
    - fprintf
    - check_func
    linkageType: ''
    returnType: void
    signature: void check_save_tmvs(const Dav1dRefmvsDSPContext *const c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/refmvs.c:304,1
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/refmvs.c:305,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/refmvs.c:319,1
    - Dst: imax
      Src: /src/dav1d/tests/checkasm/refmvs.c:320,1
    - Dst: imin
      Src: /src/dav1d/tests/checkasm/refmvs.c:321,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:324,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:329,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:330,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/refmvs.c:331,1
    - Dst: call_ref
      Src: /src/dav1d/tests/checkasm/refmvs.c:333,1
    - Dst: call_new
      Src: /src/dav1d/tests/checkasm/refmvs.c:334,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/refmvs.c:339,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/refmvs.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dRefmvsDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 344
    functionName: check_splat_mv
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached:
    - report
    - ALIGN_STK_64
    - imin
    - bench_new
    - call_new
    - call_ref
    - imax
    - rnd
    - check_func
    linkageType: ''
    returnType: void
    signature: void check_splat_mv(const Dav1dRefmvsDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_refmvs_dsp_init
      Src: /src/dav1d/tests/checkasm/refmvs.c:348,1
    - Dst: check_load_tmvs
      Src: /src/dav1d/tests/checkasm/refmvs.c:350,1
    - Dst: check_save_tmvs
      Src: /src/dav1d/tests/checkasm/refmvs.c:351,1
    - Dst: check_splat_mv
      Src: /src/dav1d/tests/checkasm/refmvs.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: checkasm_check_refmvs
    functionSourceFile: /src/dav1d/tests/checkasm/refmvs.c
    functionUses: 0
    functionsReached:
    - dav1d_refmvs_dsp_init
    - check_save_tmvs
    - check_load_tmvs
    - check_splat_mv
    linkageType: ''
    returnType: void
    signature: void checkasm_check_refmvs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: decl_check_bitfns
    functionSourceFile: /src/dav1d/tests/checkasm/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_check_bitfns(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: checkasm_check_pixel
    functionSourceFile: /src/dav1d/tests/checkasm/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: checkasm_check_pixel(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: checkasm_check_coef
    functionSourceFile: /src/dav1d/tests/checkasm/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: checkasm_check_coef(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - w
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: PIXEL_RECT
    functionSourceFile: /src/dav1d/tests/checkasm/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PIXEL_RECT(name, w, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_set_cpu_flags_mask
      Src: /src/dav1d/tests/checkasm/checkasm.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - CheckasmCpu
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: set_cpu_flags
    functionSourceFile: /src/dav1d/tests/checkasm/checkasm.c
    functionUses: 0
    functionsReached:
    - dav1d_set_cpu_flags_mask
    linkageType: ''
    returnType: void
    signature: void set_cpu_flags(CheckasmCpu flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/checkasm.c:99,1
    - Dst: dav1d_init_cpu
      Src: /src/dav1d/tests/checkasm/checkasm.c:109,1
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/tests/checkasm/checkasm.c:110,1
    - Dst: checkasm_main
      Src: /src/dav1d/tests/checkasm/checkasm.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: main
    functionSourceFile: /src/dav1d/tests/checkasm/checkasm.c
    functionUses: 1
    functionsReached:
    - checkasm_main
    - fprintf
    - dav1d_get_cpu_flags
    - dav1d_init_cpu
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: to_binary
    functionSourceFile: /src/dav1d/tests/checkasm/cdef.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int to_binary(int x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:43,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:46,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:49,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - n
    - bitdepth_max
    argTypes:
    - pixel*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: init_tmp
    functionSourceFile: /src/dav1d/tests/checkasm/cdef.c
    functionUses: 0
    functionsReached:
    - rnd
    linkageType: ''
    returnType: void
    signature: void init_tmp(pixel *buf, int n, const int bitdepth_max)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/cdef.c:56,1
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/cdef.c:57,1
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/cdef.c:58,1
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/cdef.c:59,1
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/tests/checkasm/cdef.c:60,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/cdef.c:69,1
    - Dst: to_binary
      Src: /src/dav1d/tests/checkasm/cdef.c:69,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:73,1
    - Dst: bitdepth_from_max
      Src: /src/dav1d/tests/checkasm/cdef.c:77,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/cdef.c:79,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/cdef.c:80,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/cdef.c:81,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/cdef.c:82,1
    - Dst: memcpy
      Src: /src/dav1d/tests/checkasm/cdef.c:83,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:85,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:86,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:87,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:87,1
    - Dst: checkasm_check_pixel
      Src: /src/dav1d/tests/checkasm/cdef.c:92,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/cdef.c:93,1
    - Dst: to_binary
      Src: /src/dav1d/tests/checkasm/cdef.c:94,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/cdef.c:98,1
    - Dst: alternate
      Src: /src/dav1d/tests/checkasm/cdef.c:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - fn
    - w
    - h
    argTypes:
    - cdef_fn
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 104
    functionName: check_cdef_filter
    functionSourceFile: /src/dav1d/tests/checkasm/cdef.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ALIGN_STK_64
    - to_binary
    - bench_new
    - checkasm_check_pixel
    - ALIGN_STK_16
    - rnd
    - alternate
    - bitdepth_from_max
    - fprintf
    - check_func
    - init_tmp
    linkageType: ''
    returnType: void
    signature: void check_cdef_filter(const cdef_fn fn, const int w, const int h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/cdef.c:69,1
    - Dst: to_binary
      Src: /src/dav1d/tests/checkasm/cdef.c:69,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:73,1
    - Dst: bitdepth_from_max
      Src: /src/dav1d/tests/checkasm/cdef.c:77,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/cdef.c:79,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/cdef.c:80,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/cdef.c:81,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/cdef.c:82,1
    - Dst: memcpy
      Src: /src/dav1d/tests/checkasm/cdef.c:83,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:85,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:86,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:87,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:87,1
    - Dst: checkasm_check_pixel
      Src: /src/dav1d/tests/checkasm/cdef.c:92,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/cdef.c:93,1
    - Dst: to_binary
      Src: /src/dav1d/tests/checkasm/cdef.c:94,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/cdef.c:98,1
    - Dst: alternate
      Src: /src/dav1d/tests/checkasm/cdef.c:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 103
    functionName: declare_func
    functionSourceFile: /src/dav1d/tests/checkasm/cdef.c
    functionUses: 0
    functionsReached:
    - memcpy
    - to_binary
    - bench_new
    - checkasm_check_pixel
    - rnd
    - alternate
    - bitdepth_from_max
    - fprintf
    - check_func
    - init_tmp
    linkageType: ''
    returnType: void
    signature: "void declare_func(void, pixel *dst, ptrdiff_t dst_stride, const pixel
      (*left)[2],\n                 const pixel *top, const pixel *bot, int pri_strength,\n
      \                int sec_strength, int dir, int damping,\n                 enum
      CdefEdgeFlags edges HIGHBD_DECL_SUFFIX);\n\n    for (int s = 0x1; s <= 0x3;
      s++)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/cdef.c:107,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/cdef.c:112,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/cdef.c:115,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/cdef.c:119,1
    - Dst: call_ref
      Src: /src/dav1d/tests/checkasm/cdef.c:121,1
    - Dst: call_new
      Src: /src/dav1d/tests/checkasm/cdef.c:122,1
    - Dst: fail
      Src: /src/dav1d/tests/checkasm/cdef.c:124,1
    - Dst: hex_fdump
      Src: /src/dav1d/tests/checkasm/cdef.c:125,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/cdef.c:126,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/cdef.c:129,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/cdef.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fn
    argTypes:
    - cdef_dir_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 132
    functionName: check_cdef_direction
    functionSourceFile: /src/dav1d/tests/checkasm/cdef.c
    functionUses: 0
    functionsReached:
    - report
    - ALIGN_STK_64
    - bench_new
    - call_new
    - call_ref
    - fail
    - hex_fdump
    - rnd
    - fprintf
    - check_func
    - init_tmp
    linkageType: ''
    returnType: void
    signature: void check_cdef_direction(const cdef_dir_fn fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfn
      Src: /src/dav1d/tests/checkasm/cdef.c:136,1
    - Dst: check_cdef_direction
      Src: /src/dav1d/tests/checkasm/cdef.c:138,1
    - Dst: check_cdef_filter
      Src: /src/dav1d/tests/checkasm/cdef.c:140,1
    - Dst: check_cdef_filter
      Src: /src/dav1d/tests/checkasm/cdef.c:141,1
    - Dst: check_cdef_filter
      Src: /src/dav1d/tests/checkasm/cdef.c:142,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/cdef.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 144
    functionName: bitfn
    functionSourceFile: /src/dav1d/tests/checkasm/cdef.c
    functionUses: 1
    functionsReached:
    - check_cdef_direction
    - check_cdef_filter
    - report
    - bitfn
    linkageType: ''
    returnType: void
    signature: void bitfn(checkasm_check_cdef)(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: checkasm_check_entry
    functionSourceFile: /src/dav1d/tests/checkasm/filmgrain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: checkasm_check_entry(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: checkasm_check_entry
    functionSourceFile: /src/dav1d/tests/checkasm/filmgrain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: checkasm_check_entry(...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/tests/checkasm/filmgrain.c:50,1
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/tests/checkasm/filmgrain.c:51,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/filmgrain.c:57,1
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/tests/checkasm/filmgrain.c:58,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:59,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:62,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:65,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:66,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:70,1
    - Dst: checkasm_check_entry
      Src: /src/dav1d/tests/checkasm/filmgrain.c:74,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/filmgrain.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - dsp
    argTypes:
    - Dav1dFilmGrainDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 83
    functionName: check_gen_grny
    functionSourceFile: /src/dav1d/tests/checkasm/filmgrain.c
    functionUses: 0
    functionsReached:
    - report
    - checkasm_check_entry
    - ALIGN_STK_16
    - rnd
    - check_func
    linkageType: ''
    returnType: void
    signature: void check_gen_grny(const Dav1dFilmGrainDSPContext *const dsp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/tests/checkasm/filmgrain.c:86,1
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/tests/checkasm/filmgrain.c:87,1
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/tests/checkasm/filmgrain.c:88,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/filmgrain.c:100,1
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/tests/checkasm/filmgrain.c:104,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:105,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:108,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:111,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:112,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:113,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:117,1
    - Dst: Dav1dFilmGrainDSPContext*::generate_grain_y
      Src: /src/dav1d/tests/checkasm/filmgrain.c:118,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:120,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:123,1
    - Dst: memset
      Src: /src/dav1d/tests/checkasm/filmgrain.c:126,1
    - Dst: memset
      Src: /src/dav1d/tests/checkasm/filmgrain.c:127,1
    - Dst: checkasm_check_entry
      Src: /src/dav1d/tests/checkasm/filmgrain.c:132,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/filmgrain.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - dsp
    argTypes:
    - Dav1dFilmGrainDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 142
    functionName: check_gen_grnuv
    functionSourceFile: /src/dav1d/tests/checkasm/filmgrain.c
    functionUses: 0
    functionsReached:
    - report
    - memset
    - checkasm_check_entry
    - ALIGN_STK_16
    - rnd
    - Dav1dFilmGrainDSPContext*::generate_grain_y
    - check_func
    linkageType: ''
    returnType: void
    signature: void check_gen_grnuv(const Dav1dFilmGrainDSPContext *const dsp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:273,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:276,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:280,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:281,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:283,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:284,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:285,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:286,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:289,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:292,1
    - Dst: generate_grain_y
      Src: /src/dav1d/tests/checkasm/filmgrain.c:293,1
    - Dst: num_y_points
      Src: /src/dav1d/tests/checkasm/filmgrain.c:298,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:301,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:302,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:307,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:311,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:312,1
    - Dst: generate_scaling
      Src: /src/dav1d/tests/checkasm/filmgrain.c:314,1
    - Dst: bitdepth_from_max
      Src: /src/dav1d/tests/checkasm/filmgrain.c:314,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:317,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:318,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:319,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:322,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:323,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:331,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:334,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:336,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:338,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:340,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:344,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:345,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:346,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/tests/checkasm/filmgrain.c:352,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:352,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/tests/checkasm/filmgrain.c:353,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/filmgrain.c:353,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/tests/checkasm/filmgrain.c:356,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/tests/checkasm/filmgrain.c:358,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/filmgrain.c:361,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/filmgrain.c:362,1
    - Dst: checkasm_check_pixel_padded_align
      Src: /src/dav1d/tests/checkasm/filmgrain.c:368,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/tests/checkasm/filmgrain.c:379,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/tests/checkasm/filmgrain.c:380,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 382
    functionName: ALIGN_STK_64
    functionSourceFile: /src/dav1d/tests/checkasm/filmgrain.c
    functionUses: 4
    functionsReached:
    - PXSTRIDE
    - generate_scaling
    - CLEAR_PIXEL_RECT
    - checkasm_check_pixel_padded_align
    - generate_grain_y
    - rnd
    - num_y_points
    - bitdepth_from_max
    linkageType: ''
    returnType: void
    signature: "void ALIGN_STK_64(uint8_t, scaling, SCALING_SIZE,);\n\n                fg_data[0].seed
      = rnd() & 0xFFFF;\n\n#if BITDEPTH == 16\n                const int bitdepth_max
      = rnd() & 1 ? 0x3ff : 0xfff;\n#else\n                const int bitdepth_max
      = 0xff;\n#endif\n                const int uv_pl = rnd() & 1;\n                const
      int is_identity = rnd() & 1;\n\n                fg_data[0].grain_scale_shift
      = rnd() & 3;\n                fg_data[0].ar_coeff_shift = (rnd() & 3) + 6;\n
      \               fg_data[0].ar_coeff_lag = rnd() & 3;\n                fg_data[0].num_y_points
      = csfl ? 2 + (rnd() % 13) : 0;\n                const int num_y_pos = 2 * fg_data[0].ar_coeff_lag
      * (fg_data[0].ar_coeff_lag + 1);\n                for (int n = 0; n < num_y_pos;
      n++)\n                    fg_data[0].ar_coeffs_y[n] = (rnd() & 0xff) - 128;\n
      \               const int num_uv_pos = num_y_pos + 1;\n                for (int
      n = 0; n < num_uv_pos; n++)\n                    fg_data[0].ar_coeffs_uv[uv_pl][n]
      = (rnd() & 0xff) - 128;\n                dsp->generate_grain_y(grain_lut[0],
      fg_data HIGHBD_TAIL_SUFFIX);\n                dsp->generate_grain_uv[layout_idx](grain_lut[1],
      grain_lut[0],\n                                                   fg_data, uv_pl
      HIGHBD_TAIL_SUFFIX);\n\n                if (csfl) {\n                    const
      int pad = 0xff / fg_data[0].num_y_points;\n                    for (int n =
      0; n < fg_data[0].num_y_points; n++) {\n                        fg_data[0].y_points[n][0]
      = 0xff * n / fg_data[0].num_y_points;\n                        fg_data[0].y_points[n][0]
      += rnd() % pad;\n                        fg_data[0].y_points[n][1] = rnd() &
      0xff;\n                    }\n                    generate_scaling(bitdepth_from_max(bitdepth_max),
      fg_data[0].y_points,\n                                     fg_data[0].num_y_points,
      scaling);\n                } else {\n                    fg_data[0].num_uv_points[uv_pl]
      = 2 + (rnd() % 9);\n                    const int pad = 0xff / fg_data[0].num_uv_points[uv_pl];\n
      \                   for (int n = 0; n < fg_data[0].num_uv_points[uv_pl]; n++)
      {\n                        fg_data[0].uv_points[uv_pl][n][0] = 0xff * n / fg_data[0].num_uv_points[uv_pl];\n
      \                       fg_data[0].uv_points[uv_pl][n][0] += rnd() % pad;\n
      \                       fg_data[0].uv_points[uv_pl][n][1] = rnd() & 0xff;\n
      \                   }\n                    generate_scaling(bitdepth_from_max(bitdepth_max),
      fg_data[0].uv_points[uv_pl],\n                                     fg_data[0].num_uv_points[uv_pl],
      scaling);\n\n                    fg_data[0].uv_mult[uv_pl] = (rnd() & 0xff)
      - 128;\n                    fg_data[0].uv_luma_mult[uv_pl] = (rnd() & 0xff)
      - 128;\n                    fg_data[0].uv_offset[uv_pl] = (rnd() & 0x1ff) -
      256;\n                }\n\n                fg_data[0].clip_to_restricted_range
      = rnd() & 1;\n                fg_data[0].scaling_shift = (rnd() & 3) + 8;\n
      \               fg_data[0].chroma_scaling_from_luma = csfl;\n                for
      (fg_data[0].overlap_flag = 0; fg_data[0].overlap_flag <= 1;\n                     fg_data[0].overlap_flag++)\n
      \               {\n                    for (int i = 0; i <= 2 * fg_data[0].overlap_flag;
      i++) {\n                        int w, h, row_num;\n                        if
      (fg_data[0].overlap_flag) {\n                            w = (36 >> ss_x) +
      (rnd() % (92 >> ss_x));\n                            if (i == 0) {\n                                row_num
      = 0;\n                                h = 1 + (rnd() & (31 >> ss_y));\n                            }
      else {\n                                row_num = 1 + (rnd() & 0x7ff);\n                                if
      (i == 1) {\n                                    h = (ss_y ? 2 : 3) + (rnd()
      % (ss_y ? 15 : 30));\n                                } else {\n                                    h
      = ss_y ? 1 : 1 + (rnd() & 1);\n                                }\n                            }\n
      \                       } else {\n                            w = 1 + (rnd()
      & (127 >> ss_x));\n                            h = 1 + (rnd() & (31 >> ss_y));\n
      \                           row_num = rnd() & 0x7ff;\n                        }\n\n
      \                       for (int y = 0; y < 32; y++) {\n                            //
      Src pixels past the right edge can be uninitialized\n                            for
      (int x = 0; x < 128; x++) {\n                                src[y * PXSTRIDE(stride)
      + x] = rnd();\n                                luma_src[y * PXSTRIDE(lstride)
      + x] = rnd();\n                            }\n                            for
      (int x = 0; x < w; x++)\n                                src[y * PXSTRIDE(stride)
      + x] &= bitdepth_max;\n                            for (int x = 0; x < (w <<
      ss_x); x++)\n                                luma_src[y * PXSTRIDE(lstride)
      + x] &= bitdepth_max;\n                        }\n\n                        CLEAR_PIXEL_RECT(c_dst);\n
      \                       CLEAR_PIXEL_RECT(a_dst);\n                        call_ref(c_dst,
      src, stride, fg_data, w, scaling, grain_lut[1], h,\n                                 row_num,
      luma_src, lstride, uv_pl, is_identity HIGHBD_TAIL_SUFFIX);\n                        call_new(a_dst,
      src, stride, fg_data, w, scaling, grain_lut[1], h,\n                                 row_num,
      luma_src, lstride, uv_pl, is_identity HIGHBD_TAIL_SUFFIX);\n\n                        checkasm_check_pixel_padded_align(c_dst,
      stride,\n                                                          a_dst, stride,\n
      \                                                         w, h, \"dst\",\n                                                          32
      >> ss_x, 4);\n                    }\n                }\n\n                fg_data[0].overlap_flag
      = 1;\n                for (int y = 0; y < 32; y++)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/ipred.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sz
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: gen_z2_max_wh
    functionSourceFile: /src/dav1d/tests/checkasm/ipred.c
    functionUses: 0
    functionsReached:
    - rnd
    linkageType: ''
    returnType: int
    signature: int gen_z2_max_wh(const int sz)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/ipred.c:79,1
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/ipred.c:80,1
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/ipred.c:81,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/ipred.c:96,1
    - Dst: imax
      Src: /src/dav1d/tests/checkasm/ipred.c:99,1
    - Dst: imin
      Src: /src/dav1d/tests/checkasm/ipred.c:99,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/ipred.c:108,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/ipred.c:109,1
    - Dst: gen_z2_max_wh
      Src: /src/dav1d/tests/checkasm/ipred.c:111,1
    - Dst: gen_z2_max_wh
      Src: /src/dav1d/tests/checkasm/ipred.c:112,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/ipred.c:115,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/ipred.c:115,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/ipred.c:119,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/ipred.c:124,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/ipred.c:126,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/ipred.c:127,1
    - Dst: checkasm_check_pixel_padded
      Src: /src/dav1d/tests/checkasm/ipred.c:132,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/ipred.c:137,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/ipred.c:140,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/ipred.c:144,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/ipred.c:148,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/ipred.c:154,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dIntraPredDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 155
    functionName: check_intra_pred
    functionSourceFile: /src/dav1d/tests/checkasm/ipred.c
    functionUses: 0
    functionsReached:
    - report
    - ALIGN_STK_64
    - imin
    - gen_z2_max_wh
    - CLEAR_PIXEL_RECT
    - bench_new
    - imax
    - PIXEL_RECT
    - checkasm_check_pixel_padded
    - rnd
    - fprintf
    - check_func
    linkageType: ''
    returnType: void
    signature: void check_intra_pred(Dav1dIntraPredDSPContext *const c)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - h
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: mc_h_next
    functionSourceFile: /src/dav1d/tests/checkasm/mc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mc_h_next(const int h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/mc.c:59,1
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/mc.c:60,1
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/mc.c:61,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/mc.c:72,1
    - Dst: imax
      Src: /src/dav1d/tests/checkasm/mc.c:76,1
    - Dst: imin
      Src: /src/dav1d/tests/checkasm/mc.c:76,1
    - Dst: mc_h_next
      Src: /src/dav1d/tests/checkasm/mc.c:77,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/mc.c:78,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/mc.c:79,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/mc.c:81,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/mc.c:87,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/mc.c:89,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/mc.c:90,1
    - Dst: checkasm_check_pixel_padded
      Src: /src/dav1d/tests/checkasm/mc.c:96,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/mc.c:110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dMCDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 111
    functionName: check_mc
    functionSourceFile: /src/dav1d/tests/checkasm/mc.c
    functionUses: 0
    functionsReached:
    - report
    - ALIGN_STK_64
    - imin
    - CLEAR_PIXEL_RECT
    - mc_h_next
    - imax
    - PIXEL_RECT
    - checkasm_check_pixel_padded
    - rnd
    - check_func
    linkageType: ''
    returnType: void
    signature: void check_mc(Dav1dMCDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/mc.c:116,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/mc.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - bitdepth_max
    argTypes:
    - pixel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: generate_mct_input
    functionSourceFile: /src/dav1d/tests/checkasm/mc.c
    functionUses: 0
    functionsReached:
    - rnd
    linkageType: ''
    returnType: void
    signature: void generate_mct_input(pixel *const buf, const int bitdepth_max)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/tests/checkasm/loopfilter.c:38,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:43,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:44,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:48,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:51,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:52,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:53,1
    - Dst: iclip_pixel
      Src: /src/dav1d/tests/checkasm/loopfilter.c:54,1
    - Dst: iclip_pixel
      Src: /src/dav1d/tests/checkasm/loopfilter.c:56,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:57,1
    - Dst: iclip_pixel
      Src: /src/dav1d/tests/checkasm/loopfilter.c:58,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:59,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:64,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:65,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:67,1
    - Dst: iclip_pixel
      Src: /src/dav1d/tests/checkasm/loopfilter.c:68,1
    - Dst: iclip_pixel
      Src: /src/dav1d/tests/checkasm/loopfilter.c:70,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:71,1
    - Dst: iclip_pixel
      Src: /src/dav1d/tests/checkasm/loopfilter.c:72,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:73,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:78,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:79,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:81,1
    - Dst: iclip_pixel
      Src: /src/dav1d/tests/checkasm/loopfilter.c:82,1
    - Dst: iclip_pixel
      Src: /src/dav1d/tests/checkasm/loopfilter.c:84,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:85,1
    - Dst: iclip_pixel
      Src: /src/dav1d/tests/checkasm/loopfilter.c:86,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:87,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - dst
    - stride
    - E
    - I
    - bitdepth_max
    argTypes:
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 91
    functionName: init_lpf_border
    functionSourceFile: /src/dav1d/tests/checkasm/loopfilter.c
    functionUses: 0
    functionsReached:
    - rnd
    - iclip_pixel
    - bitdepth_from_max
    linkageType: ''
    returnType: void
    signature: "void init_lpf_border(pixel *const dst, const ptrdiff_t stride,\n                            int
      E, int I, const int bitdepth_max)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/loopfilter.c:97,1
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/loopfilter.c:98,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:123,1
    - Dst: imin
      Src: /src/dav1d/tests/checkasm/loopfilter.c:129,1
    - Dst: imax
      Src: /src/dav1d/tests/checkasm/loopfilter.c:131,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/loopfilter.c:141,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:148,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:151,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:152,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:154,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:155,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/loopfilter.c:159,1
    - Dst: init_lpf_border
      Src: /src/dav1d/tests/checkasm/loopfilter.c:172,1
    - Dst: memcpy
      Src: /src/dav1d/tests/checkasm/loopfilter.c:175,1
    - Dst: call_ref
      Src: /src/dav1d/tests/checkasm/loopfilter.c:177,1
    - Dst: call_new
      Src: /src/dav1d/tests/checkasm/loopfilter.c:180,1
    - Dst: checkasm_check_pixel
      Src: /src/dav1d/tests/checkasm/loopfilter.c:184,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/loopfilter.c:186,1
    - Dst: alternate
      Src: /src/dav1d/tests/checkasm/loopfilter.c:186,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/loopfilter.c:191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 6
    argNames:
    - fn
    - name
    - n_blks
    - lf_idx
    - is_chroma
    - dir
    argTypes:
    - loopfilter_sb_fn
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 192
    functionName: check_lpf_sb
    functionSourceFile: /src/dav1d/tests/checkasm/loopfilter.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ALIGN_STK_64
    - imin
    - report
    - init_lpf_border
    - bench_new
    - call_new
    - call_ref
    - checkasm_check_pixel
    - imax
    - rnd
    - alternate
    - check_func
    linkageType: ''
    returnType: void
    signature: "void check_lpf_sb(loopfilter_sb_fn fn, const char *const name,\n                         const
      int n_blks, const int lf_idx,\n                         const int is_chroma,
      const int dir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfn
      Src: /src/dav1d/tests/checkasm/loopfilter.c:197,1
    - Dst: check_lpf_sb
      Src: /src/dav1d/tests/checkasm/loopfilter.c:199,1
    - Dst: check_lpf_sb
      Src: /src/dav1d/tests/checkasm/loopfilter.c:200,1
    - Dst: check_lpf_sb
      Src: /src/dav1d/tests/checkasm/loopfilter.c:201,1
    - Dst: check_lpf_sb
      Src: /src/dav1d/tests/checkasm/loopfilter.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: bitfn
    functionSourceFile: /src/dav1d/tests/checkasm/loopfilter.c
    functionUses: 2
    functionsReached:
    - bitfn
    - check_lpf_sb
    linkageType: ''
    returnType: void
    signature: void bitfn(checkasm_check_loopfilter)(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/msac.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cdf
    - n
    argTypes:
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: randomize_cdf
    functionSourceFile: /src/dav1d/tests/checkasm/msac.c
    functionUses: 0
    functionsReached:
    - rnd
    linkageType: ''
    returnType: void
    signature: void randomize_cdf(uint16_t *const cdf, const int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/dav1d/tests/checkasm/msac.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - MsacContext*
    - MsacContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: msac_cmp
    functionSourceFile: /src/dav1d/tests/checkasm/msac.c
    functionUses: 0
    functionsReached:
    - imax
    linkageType: ''
    returnType: int
    signature: int msac_cmp(const MsacContext *const a, const MsacContext *const b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:85,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:87,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:89,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:91,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:93,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:95,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:97,1
    - Dst: memcmp
      Src: /src/dav1d/tests/checkasm/msac.c:99,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:100,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:102,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:103,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:105,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:106,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:108,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/msac.c:109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 7
    argNames:
    - c_res
    - a_res
    - a
    - b
    - cdf_a
    - cdf_b
    - num_cdf
    argTypes:
    - unsigned
    - unsigned
    - MsacContext*
    - MsacContext*
    - uint16_t*
    - uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 111
    functionName: msac_dump
    functionSourceFile: /src/dav1d/tests/checkasm/msac.c
    functionUses: 0
    functionsReached:
    - fprintf
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void msac_dump(unsigned c_res, unsigned a_res,\n                      const
      MsacContext *const a, const MsacContext *const b,\n                      const
      uint16_t *const cdf_a, const uint16_t *const cdf_b,\n                      const
      int num_cdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n
    - ','
    - n_min
    - ','
    - n_max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 141
    functionName: CHECK_SYMBOL_ADAPT
    functionSourceFile: /src/dav1d/tests/checkasm/msac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SYMBOL_ADAPT(n, n_min, n_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/dav1d/tests/checkasm/itx.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - out
    - in
    - sz
    argTypes:
    - double*
    - double*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: fdct_1d
    functionSourceFile: /src/dav1d/tests/checkasm/itx.c
    functionUses: 0
    functionsReached:
    - cos
    linkageType: ''
    returnType: void
    signature: void fdct_1d(double *const out, const double *const in, const int sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/dav1d/tests/checkasm/itx.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - out
    - in
    - sz
    argTypes:
    - double*
    - double*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: fadst_1d
    functionSourceFile: /src/dav1d/tests/checkasm/itx.c
    functionUses: 0
    functionsReached:
    - sin
    linkageType: ''
    returnType: void
    signature: void fadst_1d(double *const out, const double *const in, const int
      sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: fwht4_1d
    functionSourceFile: /src/dav1d/tests/checkasm/itx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fwht4_1d(double *const out, const double *const in)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/itx.c:167,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/itx.c:181,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 7
    argNames:
    - coeff
    - tx
    - txtp
    - sw
    - sh
    - subsh
    - max_eob
    argTypes:
    - coef*
    - enum RectTxfmSize
    - enum TxfmType
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 183
    functionName: copy_subcoefs
    functionSourceFile: /src/dav1d/tests/checkasm/itx.c
    functionUses: 0
    functionsReached:
    - rnd
    linkageType: ''
    returnType: int
    signature: "int copy_subcoefs(coef *coeff,\n                         const enum
      RectTxfmSize tx, const enum TxfmType txtp,\n                         const int
      sw, const int sh, const int subsh,\n                         int *const max_eob)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ctz
      Src: /src/dav1d/tests/checkasm/itx.c:190,1
    - Dst: imin
      Src: /src/dav1d/tests/checkasm/itx.c:191,1
    - Dst: imin
      Src: /src/dav1d/tests/checkasm/itx.c:191,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/itx.c:197,1
    - Dst: fdct_1d
      Src: /src/dav1d/tests/checkasm/itx.c:201,1
    - Dst: fadst_1d
      Src: /src/dav1d/tests/checkasm/itx.c:205,1
    - Dst: fwht4_1d
      Src: /src/dav1d/tests/checkasm/itx.c:208,1
    - Dst: memcpy
      Src: /src/dav1d/tests/checkasm/itx.c:211,1
    - Dst: fdct_1d
      Src: /src/dav1d/tests/checkasm/itx.c:222,1
    - Dst: fadst_1d
      Src: /src/dav1d/tests/checkasm/itx.c:226,1
    - Dst: fwht4_1d
      Src: /src/dav1d/tests/checkasm/itx.c:229,1
    - Dst: memcpy
      Src: /src/dav1d/tests/checkasm/itx.c:232,1
    - Dst: copy_subcoefs
      Src: /src/dav1d/tests/checkasm/itx.c:241,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 8
    argNames:
    - buf
    - tx
    - txtp
    - w
    - h
    - subsh
    - max_eob
    - bitdepth_max
    argTypes:
    - coef*
    - enum RectTxfmSize
    - enum TxfmType
    - int
    - int
    - int
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 242
    functionName: ftx
    functionSourceFile: /src/dav1d/tests/checkasm/itx.c
    functionUses: 0
    functionsReached:
    - memcpy
    - copy_subcoefs
    - imin
    - fwht4_1d
    - ctz
    - fadst_1d
    - fdct_1d
    - rnd
    linkageType: ''
    returnType: int
    signature: "int ftx(coef *const buf, const enum RectTxfmSize tx,\n               const
      enum TxfmType txtp, const int w, const int h,\n               const int subsh,
      int *const max_eob, const int bitdepth_max)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_64
      Src: /src/dav1d/tests/checkasm/itx.c:247,1
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/itx.c:248,1
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/itx.c:249,1
    - Dst: imax
      Src: /src/dav1d/tests/checkasm/itx.c:255,1
    - Dst: bitfn
      Src: /src/dav1d/tests/checkasm/itx.c:267,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/itx.c:270,1
    - Dst: ftx
      Src: /src/dav1d/tests/checkasm/itx.c:278,1
    - Dst: memcpy
      Src: /src/dav1d/tests/checkasm/itx.c:280,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/itx.c:282,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/itx.c:283,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/tests/checkasm/itx.c:287,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/tests/checkasm/itx.c:288,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/itx.c:288,1
    - Dst: checkasm_check_pixel_padded
      Src: /src/dav1d/tests/checkasm/itx.c:295,1
    - Dst: memcmp
      Src: /src/dav1d/tests/checkasm/itx.c:298,1
    - Dst: fail
      Src: /src/dav1d/tests/checkasm/itx.c:299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - c
    - tx
    argTypes:
    - Dav1dInvTxfmDSPContext*
    - enum RectTxfmSize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 305
    functionName: check_itxfm_add
    functionSourceFile: /src/dav1d/tests/checkasm/itx.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ALIGN_STK_64
    - bitfn
    - ftx
    - CLEAR_PIXEL_RECT
    - fail
    - imax
    - PIXEL_RECT
    - rnd
    - memcmp
    - checkasm_check_pixel_padded
    - PXSTRIDE
    - check_func
    linkageType: ''
    returnType: void
    signature: "void check_itxfm_add(Dav1dInvTxfmDSPContext *const c,\n                            const
      enum RectTxfmSize tx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_itxfm_add
      Src: /src/dav1d/tests/checkasm/itx.c:323,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/itx.c:325,1
    - Dst: assert
      Src: /src/dav1d/tests/checkasm/itx.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (idx == N_RECT_TX_SIZES)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/dav1d/tests/checkasm/itx.c
    constantsTouched: []
    func_position:
      end: 328
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 328
    functionName: bitfn
    functionSourceFile: /src/dav1d/tests/checkasm/itx.c
    functionUses: 3
    functionsReached:
    - report
    - assert
    - check_itxfm_add
    linkageType: ''
    returnType: void
    signature: void bitfn(checkasm_check_itx)(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: to_binary
    functionSourceFile: /src/dav1d/tests/checkasm/looprestoration.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int to_binary(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:45,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:45,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:50,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/tests/checkasm/looprestoration.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - buf
    - stride
    - w
    - h
    - bitdepth_max
    argTypes:
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: init_tmp
    functionSourceFile: /src/dav1d/tests/checkasm/looprestoration.c
    functionUses: 3
    functionsReached:
    - rnd
    - PXSTRIDE
    linkageType: ''
    returnType: void
    signature: "void init_tmp(pixel *buf, const ptrdiff_t stride,\n                     const
      int w, const int h, const int bitdepth_max)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/looprestoration.c:57,1
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/looprestoration.c:58,1
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/looprestoration.c:59,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/looprestoration.c:71,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:72,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:73,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:74,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:80,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:81,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:82,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:85,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:86,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/looprestoration.c:89,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/looprestoration.c:95,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/looprestoration.c:96,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/looprestoration.c:97,1
    - Dst: assert
      Src: /src/dav1d/tests/checkasm/looprestoration.c:103,1
    - Dst: assert
      Src: /src/dav1d/tests/checkasm/looprestoration.c:104,1
    - Dst: memcpy
      Src: /src/dav1d/tests/checkasm/looprestoration.c:105,1
    - Dst: assert
      Src: /src/dav1d/tests/checkasm/looprestoration.c:107,1
    - Dst: call_ref
      Src: /src/dav1d/tests/checkasm/looprestoration.c:108,1
    - Dst: call_new
      Src: /src/dav1d/tests/checkasm/looprestoration.c:110,1
    - Dst: checkasm_check_pixel_padded_align
      Src: /src/dav1d/tests/checkasm/looprestoration.c:112,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/looprestoration.c:116,1
    - Dst: to_binary
      Src: /src/dav1d/tests/checkasm/looprestoration.c:117,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/looprestoration.c:121,1
    - Dst: alternate
      Src: /src/dav1d/tests/checkasm/looprestoration.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - c
    - bpc
    argTypes:
    - Dav1dLoopRestorationDSPContext*
    - int
    assertStmts:
    - condition: (c_dst_stride == h_edge_stride)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/dav1d/tests/checkasm/looprestoration.c
    - condition: (c_dst_buf_h == a_dst_buf_h)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/dav1d/tests/checkasm/looprestoration.c
    - condition: (c_dst_stride == a_dst_stride)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/dav1d/tests/checkasm/looprestoration.c
    constantsTouched: []
    func_position:
      end: 125
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 125
    functionName: check_wiener
    functionSourceFile: /src/dav1d/tests/checkasm/looprestoration.c
    functionUses: 0
    functionsReached:
    - memcpy
    - to_binary
    - CLEAR_PIXEL_RECT
    - assert
    - bench_new
    - call_new
    - call_ref
    - checkasm_check_pixel_padded_align
    - PIXEL_RECT
    - rnd
    - alternate
    - fprintf
    - check_func
    - init_tmp
    linkageType: ''
    returnType: void
    signature: void check_wiener(Dav1dLoopRestorationDSPContext *const c, const int
      bpc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/looprestoration.c:71,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:72,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:73,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:74,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:80,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:81,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:82,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:85,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:86,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/looprestoration.c:89,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/looprestoration.c:95,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/looprestoration.c:96,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/looprestoration.c:97,1
    - Dst: assert
      Src: /src/dav1d/tests/checkasm/looprestoration.c:103,1
    - Dst: assert
      Src: /src/dav1d/tests/checkasm/looprestoration.c:104,1
    - Dst: memcpy
      Src: /src/dav1d/tests/checkasm/looprestoration.c:105,1
    - Dst: assert
      Src: /src/dav1d/tests/checkasm/looprestoration.c:107,1
    - Dst: call_ref
      Src: /src/dav1d/tests/checkasm/looprestoration.c:108,1
    - Dst: call_new
      Src: /src/dav1d/tests/checkasm/looprestoration.c:110,1
    - Dst: checkasm_check_pixel_padded_align
      Src: /src/dav1d/tests/checkasm/looprestoration.c:112,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/looprestoration.c:116,1
    - Dst: to_binary
      Src: /src/dav1d/tests/checkasm/looprestoration.c:117,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/looprestoration.c:121,1
    - Dst: alternate
      Src: /src/dav1d/tests/checkasm/looprestoration.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (c_dst_stride == h_edge_stride)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/dav1d/tests/checkasm/looprestoration.c
    - condition: (c_dst_buf_h == a_dst_buf_h)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/dav1d/tests/checkasm/looprestoration.c
    - condition: (c_dst_stride == a_dst_stride)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/dav1d/tests/checkasm/looprestoration.c
    constantsTouched: []
    func_position:
      end: 124
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 124
    functionName: declare_func
    functionSourceFile: /src/dav1d/tests/checkasm/looprestoration.c
    functionUses: 0
    functionsReached:
    - memcpy
    - to_binary
    - CLEAR_PIXEL_RECT
    - assert
    - bench_new
    - call_new
    - call_ref
    - checkasm_check_pixel_padded_align
    - rnd
    - alternate
    - fprintf
    - check_func
    - init_tmp
    linkageType: ''
    returnType: void
    signature: "void declare_func(void, pixel *dst, ptrdiff_t dst_stride,\n                 const
      pixel (*const left)[4],\n                 const pixel *lpf, int w, int h,\n
      \                const LooprestorationParams *params,\n                 enum
      LrEdgeFlags edges HIGHBD_DECL_SUFFIX);\n\n    for (int t = 0; t < 2; t++)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/looprestoration.c:128,1
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/looprestoration.c:129,1
    - Dst: PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/looprestoration.c:130,1
    - Dst: check_func
      Src: /src/dav1d/tests/checkasm/looprestoration.c:147,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:151,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:152,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:154,1
    - Dst: rnd
      Src: /src/dav1d/tests/checkasm/looprestoration.c:155,1
    - Dst: CLEAR_PIXEL_RECT
      Src: /src/dav1d/tests/checkasm/looprestoration.c:158,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/looprestoration.c:164,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/looprestoration.c:165,1
    - Dst: init_tmp
      Src: /src/dav1d/tests/checkasm/looprestoration.c:166,1
    - Dst: assert
      Src: /src/dav1d/tests/checkasm/looprestoration.c:172,1
    - Dst: assert
      Src: /src/dav1d/tests/checkasm/looprestoration.c:173,1
    - Dst: memcpy
      Src: /src/dav1d/tests/checkasm/looprestoration.c:174,1
    - Dst: assert
      Src: /src/dav1d/tests/checkasm/looprestoration.c:176,1
    - Dst: call_ref
      Src: /src/dav1d/tests/checkasm/looprestoration.c:177,1
    - Dst: call_new
      Src: /src/dav1d/tests/checkasm/looprestoration.c:179,1
    - Dst: checkasm_check_pixel_padded_align
      Src: /src/dav1d/tests/checkasm/looprestoration.c:181,1
    - Dst: fprintf
      Src: /src/dav1d/tests/checkasm/looprestoration.c:185,1
    - Dst: to_binary
      Src: /src/dav1d/tests/checkasm/looprestoration.c:186,1
    - Dst: bench_new
      Src: /src/dav1d/tests/checkasm/looprestoration.c:190,1
    - Dst: alternate
      Src: /src/dav1d/tests/checkasm/looprestoration.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - c
    - bpc
    argTypes:
    - Dav1dLoopRestorationDSPContext*
    - int
    assertStmts:
    - condition: (c_dst_stride == h_edge_stride)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/dav1d/tests/checkasm/looprestoration.c
    - condition: (c_dst_buf_h == a_dst_buf_h)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/dav1d/tests/checkasm/looprestoration.c
    - condition: (c_dst_stride == a_dst_stride)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/dav1d/tests/checkasm/looprestoration.c
    constantsTouched: []
    func_position:
      end: 194
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 194
    functionName: check_sgr
    functionSourceFile: /src/dav1d/tests/checkasm/looprestoration.c
    functionUses: 0
    functionsReached:
    - memcpy
    - to_binary
    - CLEAR_PIXEL_RECT
    - assert
    - bench_new
    - call_new
    - call_ref
    - checkasm_check_pixel_padded_align
    - PIXEL_RECT
    - rnd
    - alternate
    - fprintf
    - check_func
    - init_tmp
    linkageType: ''
    returnType: void
    signature: void check_sgr(Dav1dLoopRestorationDSPContext *const c, const int bpc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitfn
      Src: /src/dav1d/tests/checkasm/looprestoration.c:204,1
    - Dst: check_wiener
      Src: /src/dav1d/tests/checkasm/looprestoration.c:205,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/looprestoration.c:207,1
    - Dst: bitfn
      Src: /src/dav1d/tests/checkasm/looprestoration.c:210,1
    - Dst: check_sgr
      Src: /src/dav1d/tests/checkasm/looprestoration.c:211,1
    - Dst: report
      Src: /src/dav1d/tests/checkasm/looprestoration.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 214
    functionName: bitfn
    functionSourceFile: /src/dav1d/tests/checkasm/looprestoration.c
    functionUses: 4
    functionsReached:
    - report
    - check_wiener
    - bitfn
    - check_sgr
    linkageType: ''
    returnType: void
    signature: void bitfn(checkasm_check_looprestoration)(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/dav1d/tools/dav1d_cli_parse.c:121,1
    - Dst: vfprintf
      Src: /src/dav1d/tools/dav1d_cli_parse.c:122,1
    - Dst: va_end
      Src: /src/dav1d/tools/dav1d_cli_parse.c:123,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d_cli_parse.c:124,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d_cli_parse.c:126,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d_cli_parse.c:127,1
    - Dst: exit
      Src: /src/dav1d/tools/dav1d_cli_parse.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - app
    - reason
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 158
    functionName: usage
    functionSourceFile: /src/dav1d/tools/dav1d_cli_parse.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - vfprintf
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *const app, const char *const reason, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/tools/dav1d_cli_parse.c:169,1
    - Dst: snprintf
      Src: /src/dav1d/tools/dav1d_cli_parse.c:171,1
    - Dst: snprintf
      Src: /src/dav1d/tools/dav1d_cli_parse.c:173,1
    - Dst: usage
      Src: /src/dav1d/tools/dav1d_cli_parse.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - app
    - optarg
    - option
    - shouldbe
    argTypes:
    - char*
    - char*
    - int
    - char*
    assertStmts:
    - condition: (long_opts[n].name)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
    constantsTouched: []
    func_position:
      end: 178
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 178
    functionName: error
    functionSourceFile: /src/dav1d/tools/dav1d_cli_parse.c
    functionUses: 1
    functionsReached:
    - usage
    - assert
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void error(const char *const app, const char *const optarg,\n                  const
      int option, const char *const shouldbe)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/dav1d/tools/dav1d_cli_parse.c:184,1
    - Dst: error
      Src: /src/dav1d/tools/dav1d_cli_parse.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - optarg
    - option
    - app
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: parse_unsigned
    functionSourceFile: /src/dav1d/tools/dav1d_cli_parse.c
    functionUses: 0
    functionsReached:
    - error
    - strtoul
    linkageType: ''
    returnType: unsigned
    signature: "unsigned parse_unsigned(const char *const optarg, const int option,\n
      \                              const char *const app)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strtod
      Src: /src/dav1d/tools/dav1d_cli_parse.c:194,1
    - Dst: strtod
      Src: /src/dav1d/tools/dav1d_cli_parse.c:197,1
    - Dst: error
      Src: /src/dav1d/tools/dav1d_cli_parse.c:198,1
    - Dst: error
      Src: /src/dav1d/tools/dav1d_cli_parse.c:200,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - optarg
    - option
    - app
    - value
    argTypes:
    - char*
    - int
    - char*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 203
    functionName: parse_optional_fraction
    functionSourceFile: /src/dav1d/tools/dav1d_cli_parse.c
    functionUses: 0
    functionsReached:
    - strtod
    - error
    linkageType: ''
    returnType: int
    signature: "int parse_optional_fraction(const char *const optarg, const int option,\n
      \                                  const char *const app, double *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: ARRAY_SIZE
    functionSourceFile: /src/dav1d/tools/dav1d_cli_parse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/dav1d/tools/dav1d_cli_parse.c:292,1
    - Dst: strcmp
      Src: /src/dav1d/tools/dav1d_cli_parse.c:294,1
    - Dst: strcat
      Src: /src/dav1d/tools/dav1d_cli_parse.c:299,1
    - Dst: strcat
      Src: /src/dav1d/tools/dav1d_cli_parse.c:301,1
    - Dst: strcat
      Src: /src/dav1d/tools/dav1d_cli_parse.c:303,1
    - Dst: strncmp
      Src: /src/dav1d/tools/dav1d_cli_parse.c:308,1
    - Dst: strtoul
      Src: /src/dav1d/tools/dav1d_cli_parse.c:309,1
    - Dst: strtoul
      Src: /src/dav1d/tools/dav1d_cli_parse.c:311,1
    - Dst: strcat
      Src: /src/dav1d/tools/dav1d_cli_parse.c:315,1
    - Dst: error
      Src: /src/dav1d/tools/dav1d_cli_parse.c:316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - optarg
    - tbl
    - tbl_sz
    - option
    - app
    argTypes:
    - char*
    - EnumParseTable*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 320
    functionName: parse_enum
    functionSourceFile: /src/dav1d/tools/dav1d_cli_parse.c
    functionUses: 0
    functionsReached:
    - strcpy
    - strncmp
    - strcat
    - error
    - strtoul
    - strcmp
    linkageType: ''
    returnType: unsigned
    signature: "unsigned parse_enum(char *optarg, const EnumParseTable *const tbl,\n
      \                          const int tbl_sz, const int option, const char *app)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/dav1d/tools/dav1d_cli_parse.c:327,1
    - Dst: dav1d_default_settings
      Src: /src/dav1d/tools/dav1d_cli_parse.c:328,1
    - Dst: getopt_long
      Src: /src/dav1d/tools/dav1d_cli_parse.c:332,1
    - Dst: parse_unsigned
      Src: /src/dav1d/tools/dav1d_cli_parse.c:344,1
    - Dst: parse_unsigned
      Src: /src/dav1d/tools/dav1d_cli_parse.c:347,1
    - Dst: parse_optional_fraction
      Src: /src/dav1d/tools/dav1d_cli_parse.c:367,1
    - Dst: parse_unsigned
      Src: /src/dav1d/tools/dav1d_cli_parse.c:372,1
    - Dst: parse_unsigned
      Src: /src/dav1d/tools/dav1d_cli_parse.c:376,1
    - Dst: parse_unsigned
      Src: /src/dav1d/tools/dav1d_cli_parse.c:380,1
    - Dst: parse_unsigned
      Src: /src/dav1d/tools/dav1d_cli_parse.c:387,1
    - Dst: parse_unsigned
      Src: /src/dav1d/tools/dav1d_cli_parse.c:392,1
    - Dst: parse_unsigned
      Src: /src/dav1d/tools/dav1d_cli_parse.c:396,1
    - Dst: strtoul
      Src: /src/dav1d/tools/dav1d_cli_parse.c:400,1
    - Dst: strtoul
      Src: /src/dav1d/tools/dav1d_cli_parse.c:402,1
    - Dst: error
      Src: /src/dav1d/tools/dav1d_cli_parse.c:404,1
    - Dst: parse_unsigned
      Src: /src/dav1d/tools/dav1d_cli_parse.c:410,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d_cli_parse.c:413,1
    - Dst: dav1d_version
      Src: /src/dav1d/tools/dav1d_cli_parse.c:413,1
    - Dst: exit
      Src: /src/dav1d/tools/dav1d_cli_parse.c:414,1
    - Dst: dav1d_set_cpu_flags_mask
      Src: /src/dav1d/tools/dav1d_cli_parse.c:416,1
    - Dst: parse_enum
      Src: /src/dav1d/tools/dav1d_cli_parse.c:416,1
    - Dst: ARRAY_SIZE
      Src: /src/dav1d/tools/dav1d_cli_parse.c:416,1
    - Dst: parse_unsigned
      Src: /src/dav1d/tools/dav1d_cli_parse.c:424,1
    - Dst: parse_enum
      Src: /src/dav1d/tools/dav1d_cli_parse.c:428,1
    - Dst: ARRAY_SIZE
      Src: /src/dav1d/tools/dav1d_cli_parse.c:429,1
    - Dst: parse_enum
      Src: /src/dav1d/tools/dav1d_cli_parse.c:433,1
    - Dst: ARRAY_SIZE
      Src: /src/dav1d/tools/dav1d_cli_parse.c:434,1
    - Dst: usage
      Src: /src/dav1d/tools/dav1d_cli_parse.c:437,1
    - Dst: usage
      Src: /src/dav1d/tools/dav1d_cli_parse.c:442,1
    - Dst: usage
      Src: /src/dav1d/tools/dav1d_cli_parse.c:445,1
    - Dst: strcmp
      Src: /src/dav1d/tools/dav1d_cli_parse.c:446,1
    - Dst: strcmp
      Src: /src/dav1d/tools/dav1d_cli_parse.c:447,1
    - Dst: usage
      Src: /src/dav1d/tools/dav1d_cli_parse.c:449,1
    - Dst: strcmp
      Src: /src/dav1d/tools/dav1d_cli_parse.c:458,1
    - Dst: strcmp
      Src: /src/dav1d/tools/dav1d_cli_parse.c:459,1
    - Dst: usage
      Src: /src/dav1d/tools/dav1d_cli_parse.c:465,1
    - Dst: strcmp
      Src: /src/dav1d/tools/dav1d_cli_parse.c:466,1
    - Dst: usage
      Src: /src/dav1d/tools/dav1d_cli_parse.c:469,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 112
    argCount: 4
    argNames:
    - argc
    - argv
    - cli_settings
    - lib_settings
    argTypes:
    - int
    - char**
    - CLISettings*
    - Dav1dSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 471
    functionName: parse
    functionSourceFile: /src/dav1d/tools/dav1d_cli_parse.c
    functionUses: 1
    functionsReached:
    - parse_enum
    - strcmp
    - parse_optional_fraction
    - memset
    - getopt_long
    - dav1d_version
    - parse_unsigned
    - error
    - ARRAY_SIZE
    - strtoul
    - dav1d_set_cpu_flags_mask
    - exit
    - fprintf
    - usage
    - dav1d_default_settings
    linkageType: ''
    returnType: void
    signature: "void parse(const int argc, char *const *const argv,\n           CLISettings
      *const cli_settings, Dav1dSettings *const lib_settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceFrequency
      Src: /src/dav1d/tools/dav1d.c:65,1
    - Dst: QueryPerformanceCounter
      Src: /src/dav1d/tools/dav1d.c:67,1
    - Dst: clock_gettime
      Src: /src/dav1d/tools/dav1d.c:73,1
    - Dst: mach_timebase_info
      Src: /src/dav1d/tools/dav1d.c:77,1
    - Dst: mach_absolute_time
      Src: /src/dav1d/tools/dav1d.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: get_time_nanos
    functionSourceFile: /src/dav1d/tools/dav1d.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - QueryPerformanceFrequency
    - QueryPerformanceCounter
    - mach_absolute_time
    - mach_timebase_info
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_time_nanos(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/dav1d/tools/dav1d.c:84,1
    - Dst: nanosleep
      Src: /src/dav1d/tools/dav1d.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: sleep_nanos
    functionSourceFile: /src/dav1d/tools/dav1d.c
    functionUses: 0
    functionsReached:
    - Sleep
    - nanosleep
    linkageType: ''
    returnType: void
    signature: void sleep_nanos(uint64_t d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_time_nanos
      Src: /src/dav1d/tools/dav1d.c:99,1
    - Dst: sleep_nanos
      Src: /src/dav1d/tools/dav1d.c:106,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d.c:112,1
    - Dst: fflush
      Src: /src/dav1d/tools/dav1d.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - realtime
    - cache
    - n_out
    - nspf
    - tfirst
    - elapsed
    - frametimes
    argTypes:
    - int
    - unsigned
    - unsigned
    - uint64_t
    - uint64_t
    - uint64_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: synchronize
    functionSourceFile: /src/dav1d/tools/dav1d.c
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    - sleep_nanos
    - get_time_nanos
    linkageType: ''
    returnType: void
    signature: "void synchronize(const int realtime, const unsigned cache,\n                        const
      unsigned n_out, const uint64_t nspf,\n                        const uint64_t
      tfirst, uint64_t *const elapsed,\n                        FILE *const frametimes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/dav1d/tools/dav1d.c:125,1
    - Dst: snprintf
      Src: /src/dav1d/tools/dav1d.c:127,1
    - Dst: snprintf
      Src: /src/dav1d/tools/dav1d.c:133,1
    - Dst: snprintf
      Src: /src/dav1d/tools/dav1d.c:136,1
    - Dst: strcpy
      Src: /src/dav1d/tools/dav1d.c:140,1
    - Dst: fputs
      Src: /src/dav1d/tools/dav1d.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - istty
    - n
    - num
    - elapsed
    - i_fps
    argTypes:
    - int
    - unsigned
    - unsigned
    - uint64_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 142
    functionName: print_stats
    functionSourceFile: /src/dav1d/tools/dav1d.c
    functionUses: 0
    functionsReached:
    - fputs
    - strcpy
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void print_stats(const int istty, const unsigned n, const unsigned
      num,\n                        const uint64_t elapsed, const double i_fps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/dav1d/tools/dav1d.c:168,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/dav1d.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p
    - _
    argTypes:
    - Dav1dPicture*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 179
    functionName: picture_alloc
    functionSourceFile: /src/dav1d/tools/dav1d.c
    functionUses: 0
    functionsReached:
    - DAV1D_ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: int picture_alloc(Dav1dPicture *const p, void *const _)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/dav1d/tools/dav1d.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - _
    argTypes:
    - Dav1dPicture*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: picture_release
    functionSourceFile: /src/dav1d/tools/dav1d.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void picture_release(Dav1dPicture *const p, void *const _)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: signal_handler
    functionSourceFile: /src/dav1d/tools/dav1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signal_handler(const int s)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/dav1d/tools/dav1d.c:191,1
    - Dst: fileno
      Src: /src/dav1d/tools/dav1d.c:191,1
    - Dst: dav1d_version_api
      Src: /src/dav1d/tools/dav1d.c:204,1
    - Dst: DAV1D_API_MAJOR
      Src: /src/dav1d/tools/dav1d.c:205,1
    - Dst: DAV1D_API_MINOR
      Src: /src/dav1d/tools/dav1d.c:206,1
    - Dst: DAV1D_API_PATCH
      Src: /src/dav1d/tools/dav1d.c:207,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d.c:211,1
    - Dst: parse
      Src: /src/dav1d/tools/dav1d.c:219,1
    - Dst: input_open
      Src: /src/dav1d/tools/dav1d.c:225,1
    - Dst: input_read
      Src: /src/dav1d/tools/dav1d.c:232,1
    - Dst: input_close
      Src: /src/dav1d/tools/dav1d.c:233,1
    - Dst: dav1d_data_unref
      Src: /src/dav1d/tools/dav1d.c:236,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d.c:240,1
    - Dst: dav1d_version
      Src: /src/dav1d/tools/dav1d.c:240,1
    - Dst: dav1d_parse_sequence_header
      Src: /src/dav1d/tools/dav1d.c:246,1
    - Dst: input_read
      Src: /src/dav1d/tools/dav1d.c:247,1
    - Dst: input_close
      Src: /src/dav1d/tools/dav1d.c:248,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d.c:254,1
    - Dst: dav1d_open
      Src: /src/dav1d/tools/dav1d.c:262,1
    - Dst: fopen
      Src: /src/dav1d/tools/dav1d.c:266,1
    - Dst: get_time_nanos
      Src: /src/dav1d/tools/dav1d.c:280,1
    - Dst: sigaction
      Src: /src/dav1d/tools/dav1d.c:287,1
    - Dst: sigaction
      Src: /src/dav1d/tools/dav1d.c:288,1
    - Dst: signal
      Src: /src/dav1d/tools/dav1d.c:290,1
    - Dst: signal
      Src: /src/dav1d/tools/dav1d.c:291,1
    - Dst: memset
      Src: /src/dav1d/tools/dav1d.c:297,1
    - Dst: dav1d_send_data
      Src: /src/dav1d/tools/dav1d.c:298,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/dav1d.c:299,1
    - Dst: dav1d_data_unref
      Src: /src/dav1d/tools/dav1d.c:300,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d.c:301,1
    - Dst: strerror
      Src: /src/dav1d/tools/dav1d.c:302,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/dav1d.c:302,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/dav1d.c:303,1
    - Dst: dav1d_get_picture
      Src: /src/dav1d/tools/dav1d.c:307,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/dav1d.c:308,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d.c:309,1
    - Dst: strerror
      Src: /src/dav1d/tools/dav1d.c:310,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/dav1d.c:310,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/dav1d.c:311,1
    - Dst: output_open
      Src: /src/dav1d/tools/dav1d.c:316,1
    - Dst: fclose
      Src: /src/dav1d/tools/dav1d.c:320,1
    - Dst: output_write
      Src: /src/dav1d/tools/dav1d.c:324,1
    - Dst: synchronize
      Src: /src/dav1d/tools/dav1d.c:328,1
    - Dst: print_stats
      Src: /src/dav1d/tools/dav1d.c:332,1
    - Dst: input_read
      Src: /src/dav1d/tools/dav1d.c:337,1
    - Dst: dav1d_data_unref
      Src: /src/dav1d/tools/dav1d.c:339,1
    - Dst: dav1d_get_picture
      Src: /src/dav1d/tools/dav1d.c:345,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/dav1d.c:346,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d.c:347,1
    - Dst: strerror
      Src: /src/dav1d/tools/dav1d.c:348,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/dav1d.c:348,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/dav1d.c:349,1
    - Dst: output_open
      Src: /src/dav1d/tools/dav1d.c:356,1
    - Dst: fclose
      Src: /src/dav1d/tools/dav1d.c:360,1
    - Dst: output_write
      Src: /src/dav1d/tools/dav1d.c:364,1
    - Dst: synchronize
      Src: /src/dav1d/tools/dav1d.c:368,1
    - Dst: print_stats
      Src: /src/dav1d/tools/dav1d.c:372,1
    - Dst: fclose
      Src: /src/dav1d/tools/dav1d.c:376,1
    - Dst: input_close
      Src: /src/dav1d/tools/dav1d.c:378,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d.c:381,1
    - Dst: output_verify
      Src: /src/dav1d/tools/dav1d.c:383,1
    - Dst: output_close
      Src: /src/dav1d/tools/dav1d.c:385,1
    - Dst: fprintf
      Src: /src/dav1d/tools/dav1d.c:387,1
    - Dst: dav1d_close
      Src: /src/dav1d/tools/dav1d.c:390,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 144
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 393
    functionName: main
    functionSourceFile: /src/dav1d/tools/dav1d.c
    functionUses: 1
    functionsReached:
    - dav1d_version_api
    - dav1d_data_unref
    - memset
    - dav1d_version
    - fopen
    - dav1d_send_data
    - sigaction
    - parse
    - synchronize
    - DAV1D_ERR
    - input_open
    - isatty
    - dav1d_close
    - DAV1D_API_PATCH
    - dav1d_get_picture
    - input_read
    - signal
    - output_write
    - DAV1D_API_MINOR
    - output_verify
    - fprintf
    - output_open
    - get_time_nanos
    - DAV1D_API_MAJOR
    - fclose
    - output_close
    - fileno
    - print_stats
    - dav1d_parse_sequence_header
    - dav1d_open
    - strerror
    - input_close
    linkageType: ''
    returnType: int
    signature: int main(const int argc, char *const *const argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_createState
      Src: /src/dav1d/tools/output/xxhash.c:49,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/output/xxhash.c:50,1
    - Dst: XXH3_128bits_reset
      Src: /src/dav1d/tools/output/xxhash.c:51,1
    - Dst: XXH3_freeState
      Src: /src/dav1d/tools/output/xxhash.c:53,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/output/xxhash.c:55,1
    - Dst: strcmp
      Src: /src/dav1d/tools/output/xxhash.c:58,1
    - Dst: fopen
      Src: /src/dav1d/tools/output/xxhash.c:60,1
    - Dst: XXH3_freeState
      Src: /src/dav1d/tools/output/xxhash.c:61,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/xxhash.c:63,1
    - Dst: strerror
      Src: /src/dav1d/tools/output/xxhash.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - xxh3
    - file
    - p
    - fps
    argTypes:
    - xxh3Context*
    - char*
    - Dav1dPictureParameters*
    - unsigned[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: xxh3_open
    functionSourceFile: /src/dav1d/tools/output/xxhash.c
    functionUses: 0
    functionsReached:
    - strerror
    - XXH3_freeState
    - fopen
    - XXH3_createState
    - DAV1D_ERR
    - fprintf
    - strcmp
    - XXH3_128bits_reset
    linkageType: ''
    returnType: int
    signature: "int xxh3_open(xxh3Context *const xxh3, const char *const file,\n                    const
      Dav1dPictureParameters *const p,\n                    const unsigned fps[2])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_128bits_update
      Src: /src/dav1d/tools/output/xxhash.c:76,1
    - Dst: XXH3_128bits_update
      Src: /src/dav1d/tools/output/xxhash.c:89,1
    - Dst: dav1d_picture_unref
      Src: /src/dav1d/tools/output/xxhash.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - xxh3
    - p
    argTypes:
    - xxh3Context*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 98
    functionName: xxh3_write
    functionSourceFile: /src/dav1d/tools/output/xxhash.c
    functionUses: 0
    functionsReached:
    - dav1d_picture_unref
    - XXH3_128bits_update
    linkageType: ''
    returnType: int
    signature: int xxh3_write(xxh3Context *const xxh3, Dav1dPicture *const p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_128bits_digest
      Src: /src/dav1d/tools/output/xxhash.c:101,1
    - Dst: XXH3_freeState
      Src: /src/dav1d/tools/output/xxhash.c:102,1
    - Dst: XXH128_canonicalFromHash
      Src: /src/dav1d/tools/output/xxhash.c:104,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/xxhash.c:107,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/xxhash.c:108,1
    - Dst: fclose
      Src: /src/dav1d/tools/output/xxhash.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - xxh3
    argTypes:
    - xxh3Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: xxh3_close
    functionSourceFile: /src/dav1d/tools/output/xxhash.c
    functionUses: 0
    functionsReached:
    - fclose
    - XXH3_128bits_digest
    - XXH128_canonicalFromHash
    - XXH3_freeState
    - fprintf
    linkageType: ''
    returnType: void
    signature: void xxh3_close(xxh3Context *const xxh3)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_128bits_digest
      Src: /src/dav1d/tools/output/xxhash.c:115,1
    - Dst: XXH3_freeState
      Src: /src/dav1d/tools/output/xxhash.c:116,1
    - Dst: strlen
      Src: /src/dav1d/tools/output/xxhash.c:118,1
    - Dst: memcpy
      Src: /src/dav1d/tools/output/xxhash.c:125,1
    - Dst: strtoul
      Src: /src/dav1d/tools/output/xxhash.c:127,1
    - Dst: XXH128_hashFromCanonical
      Src: /src/dav1d/tools/output/xxhash.c:129,1
    - Dst: XXH128_isEqual
      Src: /src/dav1d/tools/output/xxhash.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - xxh3
    - xxh3_str
    argTypes:
    - xxh3Context*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 132
    functionName: xxh3_verify
    functionSourceFile: /src/dav1d/tools/output/xxhash.c
    functionUses: 0
    functionsReached:
    - memcpy
    - XXH3_128bits_digest
    - XXH128_hashFromCanonical
    - XXH128_isEqual
    - strtoul
    - strlen
    - XXH3_freeState
    linkageType: ''
    returnType: int
    signature: int xxh3_verify(xxh3Context *const xxh3, const char * xxh3_str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/dav1d/tools/output/yuv.c:45,1
    - Dst: fopen
      Src: /src/dav1d/tools/output/yuv.c:47,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/yuv.c:48,1
    - Dst: strerror
      Src: /src/dav1d/tools/output/yuv.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - c
    - file
    - p
    - fps
    argTypes:
    - YuvOutputContext*
    - char*
    - Dav1dPictureParameters*
    - unsigned[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: yuv_open
    functionSourceFile: /src/dav1d/tools/output/yuv.c
    functionUses: 0
    functionsReached:
    - strerror
    - fopen
    - fprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int yuv_open(YuvOutputContext *const c, const char *const file,\n
      \                   const Dav1dPictureParameters *const p,\n                    const
      unsigned fps[2])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/dav1d/tools/output/yuv.c:61,1
    - Dst: fwrite
      Src: /src/dav1d/tools/output/yuv.c:75,1
    - Dst: dav1d_picture_unref
      Src: /src/dav1d/tools/output/yuv.c:82,1
    - Dst: dav1d_picture_unref
      Src: /src/dav1d/tools/output/yuv.c:86,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/yuv.c:87,1
    - Dst: strerror
      Src: /src/dav1d/tools/output/yuv.c:87,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - c
    - p
    argTypes:
    - YuvOutputContext*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 89
    functionName: yuv_write
    functionSourceFile: /src/dav1d/tools/output/yuv.c
    functionUses: 0
    functionsReached:
    - strerror
    - fwrite
    - dav1d_picture_unref
    - fprintf
    linkageType: ''
    returnType: int
    signature: int yuv_write(YuvOutputContext *const c, Dav1dPicture *const p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/dav1d/tools/output/yuv.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - YuvOutputContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: yuv_close
    functionSourceFile: /src/dav1d/tools/output/yuv.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void yuv_close(YuvOutputContext *const c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/dav1d/tools/output/output.c:69,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: find_extension
    functionSourceFile: /src/dav1d/tools/output/output.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: char *find_extension(const char *const f)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/dav1d/tools/output/output.c:96,1
    - Dst: strcmp
      Src: /src/dav1d/tools/output/output.c:98,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/output.c:104,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/output/output.c:105,1
    - Dst: strcmp
      Src: /src/dav1d/tools/output/output.c:107,1
    - Dst: find_extension
      Src: /src/dav1d/tools/output/output.c:110,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/output.c:112,1
    - Dst: strcmp
      Src: /src/dav1d/tools/output/output.c:116,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/output.c:122,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/output/output.c:123,1
    - Dst: malloc
      Src: /src/dav1d/tools/output/output.c:127,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/output.c:128,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/output/output.c:129,1
    - Dst: strchr
      Src: /src/dav1d/tools/output/output.c:134,1
    - Dst: strchr
      Src: /src/dav1d/tools/output/output.c:135,1
    - Dst: Muxer*::write_header
      Src: /src/dav1d/tools/output/output.c:150,1
    - Dst: free
      Src: /src/dav1d/tools/output/output.c:152,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 5
    argNames:
    - c_out
    - name
    - filename
    - p
    - fps
    argTypes:
    - MuxerContext**
    - char*
    - char*
    - Dav1dPictureParameters*
    - unsigned[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 158
    functionName: output_open
    functionSourceFile: /src/dav1d/tools/output/output.c
    functionUses: 1
    functionsReached:
    - strcmp
    - find_extension
    - free
    - strncmp
    - malloc
    - strchr
    - Muxer*::write_header
    - DAV1D_ERR
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int output_open(MuxerContext **const c_out,\n                const
      char *const name, const char *const filename,\n                const Dav1dPictureParameters
      *const p, const unsigned fps[2])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/dav1d/tools/output/output.c:164,1
    - Dst: assert
      Src: /src/dav1d/tools/output/output.c:165,1
    - Dst: imin
      Src: /src/dav1d/tools/output/output.c:166,1
    - Dst: memcpy
      Src: /src/dav1d/tools/output/output.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - dst
    - dst_len
    - src
    - src_len
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts:
    - condition: (dst_fill < dst_len)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/dav1d/tools/output/output.c
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: safe_strncat
    functionSourceFile: /src/dav1d/tools/output/output.c
    functionUses: 0
    functionsReached:
    - memcpy
    - imin
    - assert
    - strlen
    linkageType: ''
    returnType: void
    signature: "void safe_strncat(char *const dst, const int dst_len,\n                         const
      char *const src, const int src_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/tools/output/output.c:178,1
    - Dst: safe_strncat
      Src: /src/dav1d/tools/output/output.c:186,1
    - Dst: safe_strncat
      Src: /src/dav1d/tools/output/output.c:187,1
    - Dst: snprintf
      Src: /src/dav1d/tools/output/output.c:190,1
    - Dst: safe_strncat
      Src: /src/dav1d/tools/output/output.c:192,1
    - Dst: strlen
      Src: /src/dav1d/tools/output/output.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - dst
    - dst_len
    - fmt
    - fmt_len
    - field
    argTypes:
    - char*
    - int
    - char*
    - int
    - int
    assertStmts:
    - condition: (fmt[0] == '%')
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/dav1d/tools/output/output.c
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: assemble_field
    functionSourceFile: /src/dav1d/tools/output/output.c
    functionUses: 0
    functionsReached:
    - assert
    - safe_strncat
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void assemble_field(char *const dst, const int dst_len,\n                           const
      char *const fmt, const int fmt_len,\n                           const int field)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/tools/output/output.c:201,1
    - Dst: strchr
      Src: /src/dav1d/tools/output/output.c:203,1
    - Dst: safe_strncat
      Src: /src/dav1d/tools/output/output.c:204,1
    - Dst: assemble_field
      Src: /src/dav1d/tools/output/output.c:213,1
    - Dst: assemble_field
      Src: /src/dav1d/tools/output/output.c:216,1
    - Dst: assemble_field
      Src: /src/dav1d/tools/output/output.c:219,1
    - Dst: safe_strncat
      Src: /src/dav1d/tools/output/output.c:222,1
    - Dst: safe_strncat
      Src: /src/dav1d/tools/output/output.c:229,1
    - Dst: strlen
      Src: /src/dav1d/tools/output/output.c:229,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - filename
    - filename_size
    - p
    argTypes:
    - MuxerContext*
    - char*
    - int
    - Dav1dPictureParameters*
    assertStmts:
    - condition: (ctx->filename)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/dav1d/tools/output/output.c
    constantsTouched: []
    func_position:
      end: 230
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 230
    functionName: assemble_filename
    functionSourceFile: /src/dav1d/tools/output/output.c
    functionUses: 0
    functionsReached:
    - assemble_field
    - assert
    - safe_strncat
    - strchr
    - strlen
    linkageType: ''
    returnType: void
    signature: "void assemble_filename(MuxerContext *const ctx, char *const filename,\n
      \                             const int filename_size,\n                              const
      Dav1dPictureParameters *const p)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assemble_filename
      Src: /src/dav1d/tools/output/output.c:237,1
    - Dst: MuxerContext*::impl::write_header
      Src: /src/dav1d/tools/output/output.c:238,1
    - Dst: MuxerContext*::impl::write_picture
      Src: /src/dav1d/tools/output/output.c:242,1
    - Dst: MuxerContext*::impl::write_trailer
      Src: /src/dav1d/tools/output/output.c:245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - MuxerContext*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 248
    functionName: output_write
    functionSourceFile: /src/dav1d/tools/output/output.c
    functionUses: 1
    functionsReached:
    - assemble_filename
    - MuxerContext*::impl::write_header
    - MuxerContext*::impl::write_trailer
    - MuxerContext*::impl::write_picture
    linkageType: ''
    returnType: int
    signature: int output_write(MuxerContext *const ctx, Dav1dPicture *const p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MuxerContext*::impl::write_trailer
      Src: /src/dav1d/tools/output/output.c:252,1
    - Dst: free
      Src: /src/dav1d/tools/output/output.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - MuxerContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: output_close
    functionSourceFile: /src/dav1d/tools/output/output.c
    functionUses: 1
    functionsReached:
    - free
    - MuxerContext*::impl::write_trailer
    linkageType: ''
    returnType: void
    signature: void output_close(MuxerContext *const ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MuxerContext*::impl::verify
      Src: /src/dav1d/tools/output/output.c:258,1
    - Dst: free
      Src: /src/dav1d/tools/output/output.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md5_str
    argTypes:
    - MuxerContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: output_verify
    functionSourceFile: /src/dav1d/tools/output/output.c
    functionUses: 1
    functionsReached:
    - MuxerContext*::impl::verify
    - free
    linkageType: ''
    returnType: int
    signature: int output_verify(MuxerContext *const ctx, const char *const md5_str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/dav1d/tools/output/y4m2.c:47,1
    - Dst: fopen
      Src: /src/dav1d/tools/output/y4m2.c:49,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/y4m2.c:50,1
    - Dst: strerror
      Src: /src/dav1d/tools/output/y4m2.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - c
    - file
    - p
    - fps
    argTypes:
    - Y4m2OutputContext*
    - char*
    - Dav1dPictureParameters*
    - unsigned[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: y4m2_open
    functionSourceFile: /src/dav1d/tools/output/y4m2.c
    functionUses: 0
    functionsReached:
    - strerror
    - fopen
    - fprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int y4m2_open(Y4m2OutputContext *const c, const char *const file,\n
      \                    const Dav1dPictureParameters *p, const unsigned fps[2])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/dav1d/tools/output/y4m2.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - p
    argTypes:
    - Y4m2OutputContext*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 93
    functionName: write_header
    functionSourceFile: /src/dav1d/tools/output/y4m2.c
    functionUses: 2
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int write_header(Y4m2OutputContext *const c, const Dav1dPicture *const
      p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: write_header
      Src: /src/dav1d/tools/output/y4m2.c:98,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/y4m2.c:101,1
    - Dst: fwrite
      Src: /src/dav1d/tools/output/y4m2.c:108,1
    - Dst: fwrite
      Src: /src/dav1d/tools/output/y4m2.c:122,1
    - Dst: dav1d_picture_unref
      Src: /src/dav1d/tools/output/y4m2.c:129,1
    - Dst: dav1d_picture_unref
      Src: /src/dav1d/tools/output/y4m2.c:133,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/y4m2.c:134,1
    - Dst: strerror
      Src: /src/dav1d/tools/output/y4m2.c:134,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - c
    - p
    argTypes:
    - Y4m2OutputContext*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 136
    functionName: y4m2_write
    functionSourceFile: /src/dav1d/tools/output/y4m2.c
    functionUses: 0
    functionsReached:
    - write_header
    - dav1d_picture_unref
    - fwrite
    - strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: int y4m2_write(Y4m2OutputContext *const c, Dav1dPicture *const p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/dav1d/tools/output/y4m2.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - Y4m2OutputContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: y4m2_close
    functionSourceFile: /src/dav1d/tools/output/y4m2.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void y4m2_close(Y4m2OutputContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_picture_unref
      Src: /src/dav1d/tools/output/null.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - p
    argTypes:
    - NullOutputContext*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: null_write
    functionSourceFile: /src/dav1d/tools/output/null.c
    functionUses: 0
    functionsReached:
    - dav1d_picture_unref
    linkageType: ''
    returnType: int
    signature: int null_write(NullOutputContext *const c, Dav1dPicture *const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: NE2LE_32
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NE2LE_32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: NE2LE_64
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NE2LE_64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: NE2LE_32
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NE2LE_32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: NE2LE_64
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NE2LE_64(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/dav1d/tools/output/md5.c:96,1
    - Dst: fopen
      Src: /src/dav1d/tools/output/md5.c:98,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/md5.c:99,1
    - Dst: strerror
      Src: /src/dav1d/tools/output/md5.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - md5
    - file
    - p
    - fps
    argTypes:
    - MD5Context*
    - char*
    - Dav1dPictureParameters*
    - unsigned[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 115
    functionName: md5_open
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached:
    - strerror
    - fopen
    - fprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int md5_open(MD5Context *const md5, const char *const file,\n                    const
      Dav1dPictureParameters *const p,\n                    const unsigned fps[2])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: leftrotate
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t leftrotate(const uint32_t x, const int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: F
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: G
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: H
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: I
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: F
      Src: /src/dav1d/tools/output/md5.c:155,1
    - Dst: F
      Src: /src/dav1d/tools/output/md5.c:155,1
    - Dst: F
      Src: /src/dav1d/tools/output/md5.c:155,1
    - Dst: F
      Src: /src/dav1d/tools/output/md5.c:155,1
    - Dst: G
      Src: /src/dav1d/tools/output/md5.c:156,1
    - Dst: G
      Src: /src/dav1d/tools/output/md5.c:156,1
    - Dst: G
      Src: /src/dav1d/tools/output/md5.c:156,1
    - Dst: G
      Src: /src/dav1d/tools/output/md5.c:156,1
    - Dst: H
      Src: /src/dav1d/tools/output/md5.c:157,1
    - Dst: H
      Src: /src/dav1d/tools/output/md5.c:157,1
    - Dst: H
      Src: /src/dav1d/tools/output/md5.c:157,1
    - Dst: H
      Src: /src/dav1d/tools/output/md5.c:157,1
    - Dst: I
      Src: /src/dav1d/tools/output/md5.c:158,1
    - Dst: I
      Src: /src/dav1d/tools/output/md5.c:158,1
    - Dst: I
      Src: /src/dav1d/tools/output/md5.c:158,1
    - Dst: I
      Src: /src/dav1d/tools/output/md5.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - md5
    - data
    argTypes:
    - MD5Context*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 164
    functionName: md5_body
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached:
    - H
    - G
    - F
    - I
    linkageType: ''
    returnType: void
    signature: void md5_body(MD5Context *const md5, const uint32_t *const data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: umin
      Src: /src/dav1d/tools/output/md5.c:170,1
    - Dst: memcpy
      Src: /src/dav1d/tools/output/md5.c:172,1
    - Dst: md5_body
      Src: /src/dav1d/tools/output/md5.c:177,1
    - Dst: memcpy
      Src: /src/dav1d/tools/output/md5.c:181,1
    - Dst: md5_body
      Src: /src/dav1d/tools/output/md5.c:182,1
    - Dst: memcpy
      Src: /src/dav1d/tools/output/md5.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - md5
    - data
    - len
    argTypes:
    - MD5Context*
    - uint8_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 192
    functionName: md5_update
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached:
    - memcpy
    - md5_body
    - umin
    linkageType: ''
    returnType: void
    signature: void md5_update(MD5Context *const md5, const uint8_t *data, unsigned
      len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/dav1d/tools/output/md5.c:201,1
    - Dst: malloc
      Src: /src/dav1d/tools/output/md5.c:203,1
    - Dst: md5_update
      Src: /src/dav1d/tools/output/md5.c:216,1
    - Dst: md5_update
      Src: /src/dav1d/tools/output/md5.c:219,1
    - Dst: md5_update
      Src: /src/dav1d/tools/output/md5.c:238,1
    - Dst: md5_update
      Src: /src/dav1d/tools/output/md5.c:241,1
    - Dst: dav1d_picture_unref
      Src: /src/dav1d/tools/output/md5.c:247,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - md5
    - p
    argTypes:
    - MD5Context*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 250
    functionName: md5_write
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached:
    - md5_update
    - dav1d_picture_unref
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: int md5_write(MD5Context *const md5, Dav1dPicture *const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NE2LE_64
      Src: /src/dav1d/tools/output/md5.c:254,1
    - Dst: md5_update
      Src: /src/dav1d/tools/output/md5.c:256,1
    - Dst: md5_update
      Src: /src/dav1d/tools/output/md5.c:258,1
    - Dst: md5_update
      Src: /src/dav1d/tools/output/md5.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md5
    argTypes:
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: md5_finish
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached:
    - NE2LE_64
    - md5_update
    linkageType: ''
    returnType: void
    signature: void md5_finish(MD5Context *const md5)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: md5_finish
      Src: /src/dav1d/tools/output/md5.c:263,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/md5.c:265,1
    - Dst: fprintf
      Src: /src/dav1d/tools/output/md5.c:270,1
    - Dst: free
      Src: /src/dav1d/tools/output/md5.c:273,1
    - Dst: fclose
      Src: /src/dav1d/tools/output/md5.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - md5
    argTypes:
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 279
    functionName: md5_close
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached:
    - fclose
    - fprintf
    - md5_finish
    - free
    linkageType: ''
    returnType: void
    signature: void md5_close(MD5Context *const md5)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: md5_finish
      Src: /src/dav1d/tools/output/md5.c:282,1
    - Dst: strlen
      Src: /src/dav1d/tools/output/md5.c:284,1
    - Dst: memcpy
      Src: /src/dav1d/tools/output/md5.c:292,1
    - Dst: strtoul
      Src: /src/dav1d/tools/output/md5.c:294,1
    - Dst: free
      Src: /src/dav1d/tools/output/md5.c:299,1
    - Dst: memcmp
      Src: /src/dav1d/tools/output/md5.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - md5
    - md5_str
    argTypes:
    - MD5Context*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 304
    functionName: md5_verify
    functionSourceFile: /src/dav1d/tools/output/md5.c
    functionUses: 0
    functionsReached:
    - memcpy
    - free
    - strtoul
    - strlen
    - md5_finish
    - memcmp
    linkageType: ''
    returnType: int
    signature: int md5_verify(MD5Context *const md5, const char *md5_str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/dav1d/tools/compat/getopt.c:124,1
    - Dst: vfprintf
      Src: /src/dav1d/tools/compat/getopt.c:126,1
    - Dst: fprintf
      Src: /src/dav1d/tools/compat/getopt.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: _vwarnx
    functionSourceFile: /src/dav1d/tools/compat/getopt.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _vwarnx(const char *fmt,va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/dav1d/tools/compat/getopt.c:134,1
    - Dst: _vwarnx
      Src: /src/dav1d/tools/compat/getopt.c:135,1
    - Dst: va_end
      Src: /src/dav1d/tools/compat/getopt.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: warnx
    functionSourceFile: /src/dav1d/tools/compat/getopt.c
    functionUses: 1
    functionsReached:
    - va_start
    - _vwarnx
    - va_end
    linkageType: ''
    returnType: void
    signature: void warnx(const char *fmt,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: gcd
    functionSourceFile: /src/dav1d/tools/compat/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gcd(int a, int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcd
      Src: /src/dav1d/tools/compat/getopt.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - panonopt_start
    - panonopt_end
    - opt_end
    - nargv
    argTypes:
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 193
    functionName: permute_args
    functionSourceFile: /src/dav1d/tools/compat/getopt.c
    functionUses: 0
    functionsReached:
    - gcd
    linkageType: ''
    returnType: void
    signature: "void permute_args(int panonopt_start, int panonopt_end, int opt_end,\n\tchar
      * const *nargv)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/dav1d/tools/compat/getopt.c:219,1
    - Dst: strlen
      Src: /src/dav1d/tools/compat/getopt.c:224,1
    - Dst: strncmp
      Src: /src/dav1d/tools/compat/getopt.c:228,1
    - Dst: strlen
      Src: /src/dav1d/tools/compat/getopt.c:232,1
    - Dst: IDENTICAL_INTERPRETATION
      Src: /src/dav1d/tools/compat/getopt.c:247,1
    - Dst: warnx
      Src: /src/dav1d/tools/compat/getopt.c:253,1
    - Dst: warnx
      Src: /src/dav1d/tools/compat/getopt.c:262,1
    - Dst: warnx
      Src: /src/dav1d/tools/compat/getopt.c:292,1
    - Dst: warnx
      Src: /src/dav1d/tools/compat/getopt.c:310,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 5
    argNames:
    - nargv
    - options
    - long_options
    - idx
    - short_too
    argTypes:
    - char**
    - char*
    - struct option*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 322
    functionName: parse_long_options
    functionSourceFile: /src/dav1d/tools/compat/getopt.c
    functionUses: 0
    functionsReached:
    - IDENTICAL_INTERPRETATION
    - warnx
    - strncmp
    - strlen
    - strchr
    linkageType: ''
    returnType: int
    signature: "int parse_long_options(char * const *nargv, const char *options,\n\tconst
      struct option *long_options, int *idx, int short_too)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: IDENTICAL_INTERPRETATION
    functionSourceFile: /src/dav1d/tools/compat/getopt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDENTICAL_INTERPRETATION(_x, _y)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/dav1d/tools/compat/getopt.c:354,1
    - Dst: permute_args
      Src: /src/dav1d/tools/compat/getopt.c:372,1
    - Dst: strchr
      Src: /src/dav1d/tools/compat/getopt.c:387,1
    - Dst: permute_args
      Src: /src/dav1d/tools/compat/getopt.c:408,1
    - Dst: permute_args
      Src: /src/dav1d/tools/compat/getopt.c:432,1
    - Dst: strchr
      Src: /src/dav1d/tools/compat/getopt.c:452,1
    - Dst: parse_long_options
      Src: /src/dav1d/tools/compat/getopt.c:455,1
    - Dst: strchr
      Src: /src/dav1d/tools/compat/getopt.c:465,1
    - Dst: warnx
      Src: /src/dav1d/tools/compat/getopt.c:476,1
    - Dst: warnx
      Src: /src/dav1d/tools/compat/getopt.c:487,1
    - Dst: parse_long_options
      Src: /src/dav1d/tools/compat/getopt.c:492,1
    - Dst: warnx
      Src: /src/dav1d/tools/compat/getopt.c:508,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 123
    argCount: 6
    argNames:
    - nargc
    - nargv
    - options
    - long_options
    - idx
    - flags
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 519
    functionName: getopt_internal
    functionSourceFile: /src/dav1d/tools/compat/getopt.c
    functionUses: 0
    functionsReached:
    - warnx
    - getenv
    - strchr
    - permute_args
    - parse_long_options
    linkageType: ''
    returnType: int
    signature: "int getopt_internal(int nargc, char * const *nargv, const char *options,\n\tconst
      struct option *long_options, int *idx, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getopt_internal
      Src: /src/dav1d/tools/compat/getopt.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nargc
    - nargv
    - options
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 541
    functionName: getopt
    functionSourceFile: /src/dav1d/tools/compat/getopt.c
    functionUses: 0
    functionsReached:
    - getopt_internal
    linkageType: ''
    returnType: int
    signature: int getopt(int nargc, char * const *nargv, const char *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getopt_internal
      Src: /src/dav1d/tools/compat/getopt.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - nargc
    - nargv
    - options
    - long_options
    - idx
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 555
    functionName: getopt_long
    functionSourceFile: /src/dav1d/tools/compat/getopt.c
    functionUses: 1
    functionsReached:
    - getopt_internal
    linkageType: ''
    returnType: int
    signature: "int getopt_long(int nargc, char * const *nargv, const char *options,\n
      \   const struct option *long_options, int *idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getopt_internal
      Src: /src/dav1d/tools/compat/getopt.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - nargc
    - nargv
    - options
    - long_options
    - idx
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 561
    functionDepth: 4
    functionLinenumber: 561
    functionLinenumberEnd: 568
    functionName: getopt_long_only
    functionSourceFile: /src/dav1d/tools/compat/getopt.c
    functionUses: 0
    functionsReached:
    - getopt_internal
    linkageType: ''
    returnType: int
    signature: "int getopt_long_only(int nargc, char * const *nargv, const char *options,\n
      \   const struct option *long_options, int *idx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: parse_obu_header
      Src: /src/dav1d/tools/input/section5.c:52,1
    - Dst: parse_obu_header
      Src: /src/dav1d/tools/input/section5.c:61,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 83
    functionName: section5_probe
    functionSourceFile: /src/dav1d/tools/input/section5.c
    functionUses: 0
    functionsReached:
    - parse_obu_header
    linkageType: ''
    returnType: int
    signature: int section5_probe(const uint8_t *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/dav1d/tools/input/section5.c:92,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/section5.c:93,1
    - Dst: strerror
      Src: /src/dav1d/tools/input/section5.c:93,1
    - Dst: fread
      Src: /src/dav1d/tools/input/section5.c:106,1
    - Dst: fread
      Src: /src/dav1d/tools/input/section5.c:115,1
    - Dst: leb128
      Src: /src/dav1d/tools/input/section5.c:118,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/section5.c:121,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/section5.c:123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - c
    - file
    - fps
    - num_frames
    - timebase
    argTypes:
    - Section5InputContext*
    - char*
    - unsigned[]
    - unsigned*
    - unsigned[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 126
    functionName: section5_open
    functionSourceFile: /src/dav1d/tools/input/section5.c
    functionUses: 0
    functionsReached:
    - fseeko
    - leb128
    - fread
    - fopen
    - strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int section5_open(Section5InputContext *const c, const char *const
      file,\n                         unsigned fps[2], unsigned *const num_frames,
      unsigned timebase[2])"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/dav1d/tools/input/section5.c:134,1
    - Dst: feof
      Src: /src/dav1d/tools/input/section5.c:135,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/section5.c:145,1
    - Dst: fread
      Src: /src/dav1d/tools/input/section5.c:153,1
    - Dst: leb128
      Src: /src/dav1d/tools/input/section5.c:156,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/section5.c:160,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/section5.c:163,1
    - Dst: dav1d_data_create
      Src: /src/dav1d/tools/input/section5.c:164,1
    - Dst: fread
      Src: /src/dav1d/tools/input/section5.c:166,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/section5.c:167,1
    - Dst: strerror
      Src: /src/dav1d/tools/input/section5.c:167,1
    - Dst: dav1d_data_unref
      Src: /src/dav1d/tools/input/section5.c:168,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - Section5InputContext*
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 173
    functionName: section5_read
    functionSourceFile: /src/dav1d/tools/input/section5.c
    functionUses: 0
    functionsReached:
    - fseeko
    - leb128
    - dav1d_data_unref
    - fread
    - feof
    - dav1d_data_create
    - strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: int section5_read(Section5InputContext *const c, Dav1dData *const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/dav1d/tools/input/section5.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - Section5InputContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: section5_close
    functionSourceFile: /src/dav1d/tools/input/section5.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void section5_close(Section5InputContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/dav1d/tools/input/ivf.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: ivf_probe
    functionSourceFile: /src/dav1d/tools/input/ivf.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ivf_probe(const uint8_t *const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: rl32
    functionSourceFile: /src/dav1d/tools/input/ivf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned rl32(const uint8_t *const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rl32
      Src: /src/dav1d/tools/input/ivf.c:63,1
    - Dst: rl32
      Src: /src/dav1d/tools/input/ivf.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: rl64
    functionSourceFile: /src/dav1d/tools/input/ivf.c
    functionUses: 0
    functionsReached:
    - rl32
    linkageType: ''
    returnType: int64_t
    signature: int64_t rl64(const uint8_t *const p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/dav1d/tools/input/ivf.c:71,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/ivf.c:72,1
    - Dst: strerror
      Src: /src/dav1d/tools/input/ivf.c:72,1
    - Dst: fread
      Src: /src/dav1d/tools/input/ivf.c:74,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/ivf.c:75,1
    - Dst: strerror
      Src: /src/dav1d/tools/input/ivf.c:75,1
    - Dst: fclose
      Src: /src/dav1d/tools/input/ivf.c:76,1
    - Dst: memcmp
      Src: /src/dav1d/tools/input/ivf.c:78,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/ivf.c:79,1
    - Dst: fclose
      Src: /src/dav1d/tools/input/ivf.c:81,1
    - Dst: memcmp
      Src: /src/dav1d/tools/input/ivf.c:83,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/ivf.c:84,1
    - Dst: fclose
      Src: /src/dav1d/tools/input/ivf.c:86,1
    - Dst: rl32
      Src: /src/dav1d/tools/input/ivf.c:90,1
    - Dst: rl32
      Src: /src/dav1d/tools/input/ivf.c:91,1
    - Dst: rl32
      Src: /src/dav1d/tools/input/ivf.c:92,1
    - Dst: fread
      Src: /src/dav1d/tools/input/ivf.c:97,1
    - Dst: rl32
      Src: /src/dav1d/tools/input/ivf.c:98,1
    - Dst: fread
      Src: /src/dav1d/tools/input/ivf.c:99,1
    - Dst: rl64
      Src: /src/dav1d/tools/input/ivf.c:100,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/ivf.c:104,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/ivf.c:108,1
    - Dst: fclose
      Src: /src/dav1d/tools/input/ivf.c:109,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/ivf.c:135,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 5
    argNames:
    - c
    - file
    - fps
    - num_frames
    - timebase
    argTypes:
    - IvfInputContext*
    - char*
    - unsigned[]
    - unsigned*
    - unsigned[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 139
    functionName: ivf_open
    functionSourceFile: /src/dav1d/tools/input/ivf.c
    functionUses: 0
    functionsReached:
    - fclose
    - fseeko
    - rl64
    - fread
    - fopen
    - rl32
    - strerror
    - fprintf
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int ivf_open(IvfInputContext *const c, const char *const file,\n                    unsigned
      fps[2], unsigned *const num_frames, unsigned timebase[2])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ftello
      Src: /src/dav1d/tools/input/ivf.c:145,1
    - Dst: fread
      Src: /src/dav1d/tools/input/ivf.c:147,1
    - Dst: rl32
      Src: /src/dav1d/tools/input/ivf.c:148,1
    - Dst: fread
      Src: /src/dav1d/tools/input/ivf.c:150,1
    - Dst: rl64
      Src: /src/dav1d/tools/input/ivf.c:151,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/ivf.c:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - c
    - sz
    - off_
    - ts
    argTypes:
    - IvfInputContext*
    - ptrdiff_t*
    - int64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: ivf_read_header
    functionSourceFile: /src/dav1d/tools/input/ivf.c
    functionUses: 0
    functionsReached:
    - fseeko
    - rl64
    - fread
    - rl32
    - ftello
    linkageType: ''
    returnType: int
    signature: "int ivf_read_header(IvfInputContext *const c, ptrdiff_t *const sz,\n
      \                                 int64_t *const off_, uint64_t *const ts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ivf_read_header
      Src: /src/dav1d/tools/input/ivf.c:164,1
    - Dst: dav1d_data_create
      Src: /src/dav1d/tools/input/ivf.c:165,1
    - Dst: fread
      Src: /src/dav1d/tools/input/ivf.c:166,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/ivf.c:167,1
    - Dst: strerror
      Src: /src/dav1d/tools/input/ivf.c:167,1
    - Dst: dav1d_data_unref
      Src: /src/dav1d/tools/input/ivf.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - c
    - buf
    argTypes:
    - IvfInputContext*
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: ivf_read
    functionSourceFile: /src/dav1d/tools/input/ivf.c
    functionUses: 0
    functionsReached:
    - dav1d_data_unref
    - ivf_read_header
    - fread
    - dav1d_data_create
    - strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ivf_read(IvfInputContext *const c, Dav1dData *const buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: llround
      Src: /src/dav1d/tools/input/ivf.c:179,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/ivf.c:181,1
    - Dst: ivf_read_header
      Src: /src/dav1d/tools/input/ivf.c:184,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/ivf.c:186,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/ivf.c:189,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/ivf.c:192,1
    - Dst: strerror
      Src: /src/dav1d/tools/input/ivf.c:192,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - c
    - pts
    argTypes:
    - IvfInputContext*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 194
    functionName: ivf_seek
    functionSourceFile: /src/dav1d/tools/input/ivf.c
    functionUses: 0
    functionsReached:
    - fseeko
    - ivf_read_header
    - llround
    - strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ivf_seek(IvfInputContext *const c, const uint64_t pts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/dav1d/tools/input/ivf.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - IvfInputContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: ivf_close
    functionSourceFile: /src/dav1d/tools/input/ivf.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void ivf_close(IvfInputContext *const c)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: leb
      Src: /src/dav1d/tools/input/annexb.c:52,1
    - Dst: leb
      Src: /src/dav1d/tools/input/annexb.c:58,1
    - Dst: leb
      Src: /src/dav1d/tools/input/annexb.c:66,1
    - Dst: parse_obu_header
      Src: /src/dav1d/tools/input/annexb.c:77,1
    - Dst: imin
      Src: /src/dav1d/tools/input/annexb.c:77,1
    - Dst: leb
      Src: /src/dav1d/tools/input/annexb.c:86,1
    - Dst: parse_obu_header
      Src: /src/dav1d/tools/input/annexb.c:93,1
    - Dst: imin
      Src: /src/dav1d/tools/input/annexb.c:93,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 120
    functionName: annexb_probe
    functionSourceFile: /src/dav1d/tools/input/annexb.c
    functionUses: 0
    functionsReached:
    - leb
    - imin
    - parse_obu_header
    linkageType: ''
    returnType: int
    signature: int annexb_probe(const uint8_t *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/dav1d/tools/input/annexb.c:134,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/annexb.c:135,1
    - Dst: strerror
      Src: /src/dav1d/tools/input/annexb.c:135,1
    - Dst: leb128
      Src: /src/dav1d/tools/input/annexb.c:145,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/annexb.c:148,1
    - Dst: fseeko
      Src: /src/dav1d/tools/input/annexb.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - c
    - file
    - fps
    - num_frames
    - timebase
    argTypes:
    - AnnexbInputContext*
    - char*
    - unsigned[]
    - unsigned*
    - unsigned[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 153
    functionName: annexb_open
    functionSourceFile: /src/dav1d/tools/input/annexb.c
    functionUses: 0
    functionsReached:
    - fseeko
    - leb128
    - fopen
    - strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int annexb_open(AnnexbInputContext *const c, const char *const file,\n
      \                      unsigned fps[2], unsigned *const num_frames, unsigned
      timebase[2])"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: leb128
      Src: /src/dav1d/tools/input/annexb.c:160,1
    - Dst: leb128
      Src: /src/dav1d/tools/input/annexb.c:164,1
    - Dst: leb128
      Src: /src/dav1d/tools/input/annexb.c:168,1
    - Dst: dav1d_data_create
      Src: /src/dav1d/tools/input/annexb.c:170,1
    - Dst: fread
      Src: /src/dav1d/tools/input/annexb.c:174,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/annexb.c:175,1
    - Dst: strerror
      Src: /src/dav1d/tools/input/annexb.c:175,1
    - Dst: dav1d_data_unref
      Src: /src/dav1d/tools/input/annexb.c:176,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - AnnexbInputContext*
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 181
    functionName: annexb_read
    functionSourceFile: /src/dav1d/tools/input/annexb.c
    functionUses: 0
    functionsReached:
    - leb128
    - dav1d_data_unref
    - fread
    - dav1d_data_create
    - strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: int annexb_read(AnnexbInputContext *const c, Dav1dData *const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/dav1d/tools/input/annexb.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - AnnexbInputContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: annexb_close
    functionSourceFile: /src/dav1d/tools/input/annexb.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void annexb_close(AnnexbInputContext *const c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/dav1d/tools/input/input.c:67,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/input.c:73,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/input/input.c:74,1
    - Dst: imax
      Src: /src/dav1d/tools/input/input.c:79,1
    - Dst: malloc
      Src: /src/dav1d/tools/input/input.c:80,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/input.c:82,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/input/input.c:83,1
    - Dst: fopen
      Src: /src/dav1d/tools/input/input.c:85,1
    - Dst: free
      Src: /src/dav1d/tools/input/input.c:87,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/input.c:88,1
    - Dst: strerror
      Src: /src/dav1d/tools/input/input.c:88,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/input/input.c:89,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/input/input.c:89,1
    - Dst: fread
      Src: /src/dav1d/tools/input/input.c:91,1
    - Dst: fclose
      Src: /src/dav1d/tools/input/input.c:92,1
    - Dst: free
      Src: /src/dav1d/tools/input/input.c:94,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/input.c:95,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/input/input.c:96,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/input/input.c:96,1
    - Dst: probe
      Src: /src/dav1d/tools/input/input.c:100,1
    - Dst: free
      Src: /src/dav1d/tools/input/input.c:105,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/input.c:107,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/input/input.c:110,1
    - Dst: calloc
      Src: /src/dav1d/tools/input/input.c:114,1
    - Dst: fprintf
      Src: /src/dav1d/tools/input/input.c:115,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/tools/input/input.c:116,1
    - Dst: Demuxer*::open
      Src: /src/dav1d/tools/input/input.c:120,1
    - Dst: free
      Src: /src/dav1d/tools/input/input.c:121,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 6
    argNames:
    - c_out
    - name
    - filename
    - fps
    - num_frames
    - timebase
    argTypes:
    - DemuxerContext**
    - char*
    - char*
    - unsigned[]
    - unsigned*
    - unsigned[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 127
    functionName: input_open
    functionSourceFile: /src/dav1d/tools/input/input.c
    functionUses: 2
    functionsReached:
    - calloc
    - fclose
    - strcmp
    - free
    - malloc
    - fread
    - imax
    - fopen
    - probe
    - Demuxer*::open
    - DAV1D_ERR
    - strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int input_open(DemuxerContext **const c_out,\n               const
      char *const name, const char *const filename,\n               unsigned fps[2],
      unsigned *const num_frames, unsigned timebase[2])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DemuxerContext*::impl::read
      Src: /src/dav1d/tools/input/input.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - DemuxerContext*
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: input_read
    functionSourceFile: /src/dav1d/tools/input/input.c
    functionUses: 4
    functionsReached:
    - DemuxerContext*::impl::read
    linkageType: ''
    returnType: int
    signature: int input_read(DemuxerContext *const ctx, Dav1dData *const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DemuxerContext*::impl::seek
      Src: /src/dav1d/tools/input/input.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pts
    argTypes:
    - DemuxerContext*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: input_seek
    functionSourceFile: /src/dav1d/tools/input/input.c
    functionUses: 1
    functionsReached:
    - DemuxerContext*::impl::seek
    linkageType: ''
    returnType: int
    signature: int input_seek(DemuxerContext *const ctx, const uint64_t pts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DemuxerContext*::impl::close
      Src: /src/dav1d/tools/input/input.c:138,1
    - Dst: free
      Src: /src/dav1d/tools/input/input.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - DemuxerContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: input_close
    functionSourceFile: /src/dav1d/tools/input/input.c
    functionUses: 2
    functionsReached:
    - DemuxerContext*::impl::close
    - free
    linkageType: ''
    returnType: void
    signature: void input_close(DemuxerContext *const ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/dav1d/tools/input/parse.h:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - f
    - len
    argTypes:
    - FILE*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: leb128
    functionSourceFile: /src/dav1d/tools/input/parse.h
    functionUses: 4
    functionsReached:
    - fread
    linkageType: ''
    returnType: int
    signature: int leb128(FILE *const f, size_t *const len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ptr
    - sz
    - len
    argTypes:
    - uint8_t*
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: leb
    functionSourceFile: /src/dav1d/tools/input/parse.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int leb(const uint8_t *ptr, int sz, size_t *const len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: leb
      Src: /src/dav1d/tools/input/parse.h:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - buf
    - buf_size
    - obu_size
    - type
    - allow_implicit_size
    argTypes:
    - uint8_t*
    - int
    - size_t*
    - enum Dav1dObuType*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 109
    functionName: parse_obu_header
    functionSourceFile: /src/dav1d/tools/input/parse.h
    functionUses: 2
    functionsReached:
    - leb
    linkageType: ''
    returnType: int
    signature: "int parse_obu_header(const uint8_t *buf, int buf_size,\n                                   size_t
      *const obu_size,\n                                   enum Dav1dObuType *const
      type,\n                                   const int allow_implicit_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: decl_loopfilter_sb_fn
    functionSourceFile: /src/dav1d/src/loopfilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_loopfilter_sb_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: INTRA_EDGE_SPLIT
    functionSourceFile: /src/dav1d/src/intra_edge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTRA_EDGE_SPLIT(n, i)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/looprestoration_tmpl.c:49,1
    - Dst: iclip
      Src: /src/dav1d/src/looprestoration_tmpl.c:76,1
    - Dst: iclip
      Src: /src/dav1d/src/looprestoration_tmpl.c:100,1
    - Dst: iclip
      Src: /src/dav1d/src/looprestoration_tmpl.c:117,1
    - Dst: iclip
      Src: /src/dav1d/src/looprestoration_tmpl.c:140,1
    - Dst: iclip
      Src: /src/dav1d/src/looprestoration_tmpl.c:158,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 6
    argNames:
    - dst
    - (*left)
    - src
    - fh
    - w
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - uint16_t*
    - pixel[]
    - pixel*
    - int16_t[]
    - int
    - enum LrEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 161
    functionName: wiener_filter_h
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - iclip
    - bitdepth_from_max
    linkageType: ''
    returnType: void
    signature: "void wiener_filter_h(uint16_t *dst, const pixel (*left)[4],\n                            const
      pixel *src, const int16_t fh[8],\n                            const int w, const
      enum LrEdgeFlags edges\n                            HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/looprestoration_tmpl.c:166,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/looprestoration_tmpl.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - p
    - ptrs
    - fv
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - uint16_t**
    - int16_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 191
    functionName: wiener_filter_v
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - iclip_pixel
    - bitdepth_from_max
    linkageType: ''
    returnType: void
    signature: "void wiener_filter_v(pixel *p, uint16_t **ptrs, const int16_t fv[8],\n
      \                           const int w HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/looprestoration_tmpl.c:198,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/looprestoration_tmpl.c:227,1
    - Dst: memcpy
      Src: /src/dav1d/src/looprestoration_tmpl.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - p
    - ptrs
    - (*left)
    - src
    - filter
    - w
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - uint16_t**
    - pixel[]
    - pixel*
    - int16_t[][]
    - int
    - enum LrEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 246
    functionName: wiener_filter_hv
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - iclip_pixel
    - bitdepth_from_max
    linkageType: ''
    returnType: void
    signature: "void wiener_filter_hv(pixel *p, uint16_t **ptrs, const pixel (*left)[4],\n
      \                            const pixel *src, const int16_t filter[2][8],\n
      \                            const int w, const enum LrEdgeFlags edges\n                             HIGHBD_DECL_SUFFIX)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:265,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:277,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:282,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:290,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:298,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:312,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:320,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:328,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:337,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:338,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:347,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:348,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:359,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:360,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:368,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:369,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:373,1
    - Dst: wiener_filter_v
      Src: /src/dav1d/src/looprestoration_tmpl.c:375,1
    - Dst: wiener_filter_v
      Src: /src/dav1d/src/looprestoration_tmpl.c:380,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:381,1
    - Dst: wiener_filter_v
      Src: /src/dav1d/src/looprestoration_tmpl.c:383,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:384,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 106
    argCount: 8
    argNames:
    - p
    - stride
    - (*left)
    - lpf
    - w
    - h
    - params
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel[]
    - pixel*
    - int
    - int
    - LooprestorationParams*
    - enum LrEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 386
    functionName: wiener_c
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - wiener_filter_v
    linkageType: ''
    returnType: void
    signature: "void wiener_c(pixel *p, const ptrdiff_t stride,\n                     const
      pixel (*left)[4],\n                     const pixel *lpf, const int w, int h,\n
      \                    const LooprestorationParams *const params,\n                     const
      enum LrEdgeFlags edges HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - sumsq_ptrs
    - sum_ptrs
    - n
    argTypes:
    - int32_t**
    - coef**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: rotate
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NOINLINE
    signature: NOINLINE rotate(int32_t **sumsq_ptrs, coef **sum_ptrs, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - sumsq_ptrs
    - sum_ptrs
    argTypes:
    - int32_t**
    - coef**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 417
    functionName: rotate5_x2
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NOINLINE
    signature: NOINLINE rotate5_x2(int32_t **sumsq_ptrs, coef **sum_ptrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - sumsq
    - sum
    - (*left)
    - src
    - w
    - edges
    argTypes:
    - int32_t*
    - coef*
    - pixel[]
    - pixel*
    - int
    - enum LrEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 435
    functionName: sgr_box3_row_h
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_box3_row_h(int32_t *sumsq, coef *sum,\n                                    const
      pixel (*left)[4],\n                                    const pixel *src, const
      int w,\n                                    const enum LrEdgeFlags edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - sumsq
    - sum
    - (*left)
    - src
    - w
    - edges
    argTypes:
    - int32_t*
    - coef*
    - pixel[]
    - pixel*
    - int
    - enum LrEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 457
    functionName: sgr_box5_row_h
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_box5_row_h(int32_t *sumsq, coef *sum,\n                                    const
      pixel (*left)[4],\n                                    const pixel *src, const
      int w,\n                                    const enum LrEdgeFlags edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sgr_box3_row_h
      Src: /src/dav1d/src/looprestoration_tmpl.c:465,1
    - Dst: sgr_box5_row_h
      Src: /src/dav1d/src/looprestoration_tmpl.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - sumsq3
    - sum3
    - sumsq5
    - sum5
    - (*left)
    - src
    - w
    - edges
    argTypes:
    - int32_t*
    - coef*
    - int32_t*
    - coef*
    - pixel[]
    - pixel*
    - int
    - enum LrEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 467
    functionName: sgr_box35_row_h
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - sgr_box5_row_h
    - sgr_box3_row_h
    linkageType: ''
    returnType: void
    signature: "void sgr_box35_row_h(int32_t *sumsq3, coef *sum3,\n                            int32_t
      *sumsq5, coef *sum5,\n                            const pixel (*left)[4],\n
      \                           const pixel *src, const int w,\n                            const
      enum LrEdgeFlags edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - sumsq
    - sum
    - sumsq_out
    - sum_out
    - w
    argTypes:
    - int32_t**
    - coef**
    - int32_t*
    - coef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 483
    functionName: sgr_box3_row_v
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_box3_row_v(int32_t **sumsq, coef **sum,\n                                    int32_t
      *sumsq_out, coef *sum_out,\n                                    const int w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - sumsq
    - sum
    - sumsq_out
    - sum_out
    - w
    argTypes:
    - int32_t**
    - coef**
    - int32_t*
    - coef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 503
    functionName: sgr_box5_row_v
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_box5_row_v(int32_t **sumsq, coef **sum,\n                                    int32_t
      *sumsq_out, coef *sum_out,\n                                    const int w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/looprestoration_tmpl.c:508,1
    - Dst: imax
      Src: /src/dav1d/src/looprestoration_tmpl.c:515,1
    - Dst: umin
      Src: /src/dav1d/src/looprestoration_tmpl.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - AA
    - BB
    - w
    - s
    - bitdepth_max
    - n
    - sgr_one_by_x
    argTypes:
    - int32_t*
    - coef*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 523
    functionName: sgr_calc_row_ab
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - imax
    - bitdepth_from_max
    - umin
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_calc_row_ab(int32_t *AA, coef *BB, int w, int s,\n                                     int
      bitdepth_max, int n, int sgr_one_by_x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sgr_box3_row_v
      Src: /src/dav1d/src/looprestoration_tmpl.c:529,1
    - Dst: sgr_calc_row_ab
      Src: /src/dav1d/src/looprestoration_tmpl.c:530,1
    - Dst: rotate
      Src: /src/dav1d/src/looprestoration_tmpl.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - sumsq
    - sum
    - sumsq_out
    - sum_out
    - w
    - s
    - bitdepth_max
    argTypes:
    - int32_t**
    - coef**
    - int32_t*
    - coef*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 532
    functionName: sgr_box3_vert
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - rotate
    - sgr_box3_row_v
    - sgr_calc_row_ab
    linkageType: ''
    returnType: void
    signature: "void sgr_box3_vert(int32_t **sumsq, coef **sum,\n                          int32_t
      *sumsq_out, coef *sum_out,\n                          const int w, const int
      s, const int bitdepth_max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sgr_box5_row_v
      Src: /src/dav1d/src/looprestoration_tmpl.c:538,1
    - Dst: sgr_calc_row_ab
      Src: /src/dav1d/src/looprestoration_tmpl.c:539,1
    - Dst: rotate5_x2
      Src: /src/dav1d/src/looprestoration_tmpl.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - sumsq
    - sum
    - sumsq_out
    - sum_out
    - w
    - s
    - bitdepth_max
    argTypes:
    - int32_t**
    - coef**
    - int32_t*
    - coef*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 541
    functionName: sgr_box5_vert
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - sgr_calc_row_ab
    - rotate5_x2
    - sgr_box5_row_v
    linkageType: ''
    returnType: void
    signature: "void sgr_box5_vert(int32_t **sumsq, coef **sum,\n                          int32_t
      *sumsq_out, coef *sum_out,\n                          const int w, const int
      s, const int bitdepth_max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sgr_box3_row_h
      Src: /src/dav1d/src/looprestoration_tmpl.c:551,1
    - Dst: sgr_box3_vert
      Src: /src/dav1d/src/looprestoration_tmpl.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 10
    argNames:
    - sumsq
    - sum
    - AA
    - BB
    - (*left)
    - src
    - w
    - s
    - edges
    - bitdepth_max
    argTypes:
    - int32_t**
    - coef**
    - int32_t*
    - coef*
    - pixel[]
    - pixel*
    - int
    - int
    - enum LrEdgeFlags
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 553
    functionName: sgr_box3_hv
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - sgr_box3_row_h
    - sgr_box3_vert
    linkageType: ''
    returnType: void
    signature: "void sgr_box3_hv(int32_t **sumsq, coef **sum,\n                        int32_t
      *AA, coef *BB,\n                        const pixel (*left)[4],\n                        const
      pixel *src, const int w,\n                        const int s,\n                        const
      enum LrEdgeFlags edges,\n                        const int bitdepth_max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EIGHT_NEIGHBORS
      Src: /src/dav1d/src/looprestoration_tmpl.c:565,1
    - Dst: EIGHT_NEIGHBORS
      Src: /src/dav1d/src/looprestoration_tmpl.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - tmp
    - src
    - A_ptrs
    - B_ptrs
    - w
    argTypes:
    - coef*
    - pixel*
    - int32_t**
    - coef**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 570
    functionName: sgr_finish_filter_row1
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - EIGHT_NEIGHBORS
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_finish_filter_row1(coef *tmp,\n                                            const
      pixel *src,\n                                            int32_t **A_ptrs, coef
      **B_ptrs,\n                                            const int w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: EIGHT_NEIGHBORS
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EIGHT_NEIGHBORS(P, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SIX_NEIGHBORS
      Src: /src/dav1d/src/looprestoration_tmpl.c:585,1
    - Dst: SIX_NEIGHBORS
      Src: /src/dav1d/src/looprestoration_tmpl.c:586,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - tmp
    - src
    - src_stride
    - A_ptrs
    - B_ptrs
    - w
    - h
    argTypes:
    - coef*
    - pixel*
    - ptrdiff_t
    - int32_t**
    - coef**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 601
    functionName: sgr_finish_filter2
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - SIX_NEIGHBORS
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_finish_filter2(coef *tmp,\n                                        const
      pixel *src,\n                                        const ptrdiff_t src_stride,\n
      \                                       int32_t **A_ptrs, coef **B_ptrs,\n                                        const
      int w, const int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: SIX_NEIGHBORS
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIX_NEIGHBORS(P, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iclip_pixel
      Src: /src/dav1d/src/looprestoration_tmpl.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - dst
    - t1
    - w
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - coef*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 610
    functionName: sgr_weighted_row1
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - iclip_pixel
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_weighted_row1(pixel *dst, const coef *t1,\n                                       const
      int w, const int w1 HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iclip_pixel
      Src: /src/dav1d/src/looprestoration_tmpl.c:620,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 8
    argNames:
    - dst
    - dst_stride
    - t1
    - t2
    - w
    - h
    - w0
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - coef*
    - coef*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 626
    functionName: sgr_weighted2
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - iclip_pixel
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_weighted2(pixel *dst, const ptrdiff_t dst_stride,\n                                   const
      coef *t1, const coef *t2,\n                                   const int w, const
      int h,\n                                   const int w0, const int w1 HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/src/looprestoration_tmpl.c:633,1
    - Dst: sgr_finish_filter_row1
      Src: /src/dav1d/src/looprestoration_tmpl.c:635,1
    - Dst: sgr_weighted_row1
      Src: /src/dav1d/src/looprestoration_tmpl.c:636,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:637,1
    - Dst: rotate
      Src: /src/dav1d/src/looprestoration_tmpl.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - dst
    - stride
    - A_ptrs
    - B_ptrs
    - w
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel**
    - ptrdiff_t
    - int32_t**
    - coef**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 639
    functionName: sgr_finish1
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - sgr_weighted_row1
    - rotate
    - sgr_finish_filter_row1
    - ALIGN_STK_16
    - PXSTRIDE
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_finish1(pixel **dst, const ptrdiff_t stride,\n                                 int32_t
      **A_ptrs, coef **B_ptrs, const int w,\n                                 const
      int w1 HIGHBD_DECL_SUFFIX)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/src/looprestoration_tmpl.c:646,1
    - Dst: sgr_finish_filter2
      Src: /src/dav1d/src/looprestoration_tmpl.c:648,1
    - Dst: sgr_weighted_row1
      Src: /src/dav1d/src/looprestoration_tmpl.c:649,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:650,1
    - Dst: sgr_weighted_row1
      Src: /src/dav1d/src/looprestoration_tmpl.c:652,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:653,1
    - Dst: rotate
      Src: /src/dav1d/src/looprestoration_tmpl.c:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 7
    argNames:
    - dst
    - stride
    - A_ptrs
    - B_ptrs
    - w
    - h
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel**
    - ptrdiff_t
    - int32_t**
    - coef**
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 656
    functionName: sgr_finish2
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - sgr_weighted_row1
    - rotate
    - ALIGN_STK_16
    - sgr_finish_filter2
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_finish2(pixel **dst, const ptrdiff_t stride,\n                                 int32_t
      **A_ptrs, coef **B_ptrs,\n                                 const int w, const
      int h, const int w1\n                                 HIGHBD_DECL_SUFFIX)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/src/looprestoration_tmpl.c:664,1
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/src/looprestoration_tmpl.c:665,1
    - Dst: sgr_finish_filter2
      Src: /src/dav1d/src/looprestoration_tmpl.c:667,1
    - Dst: sgr_finish_filter_row1
      Src: /src/dav1d/src/looprestoration_tmpl.c:668,1
    - Dst: sgr_finish_filter_row1
      Src: /src/dav1d/src/looprestoration_tmpl.c:670,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:670,1
    - Dst: sgr_weighted2
      Src: /src/dav1d/src/looprestoration_tmpl.c:672,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/looprestoration_tmpl.c:673,1
    - Dst: rotate
      Src: /src/dav1d/src/looprestoration_tmpl.c:674,1
    - Dst: rotate
      Src: /src/dav1d/src/looprestoration_tmpl.c:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 10
    argNames:
    - dst
    - stride
    - A5_ptrs
    - B5_ptrs
    - A3_ptrs
    - B3_ptrs
    - w
    - h
    - w0
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel**
    - ptrdiff_t
    - int32_t**
    - coef**
    - int32_t**
    - coef**
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 676
    functionName: sgr_finish_mix
    functionSourceFile: /src/dav1d/src/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - sgr_weighted2
    - rotate
    - sgr_finish_filter_row1
    - ALIGN_STK_16
    - sgr_finish_filter2
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE sgr_finish_mix(pixel **dst, const ptrdiff_t stride,\n                                    int32_t
      **A5_ptrs, coef **B5_ptrs,\n                                    int32_t **A3_ptrs,
      coef **B3_ptrs,\n                                    const int w, const int
      h,\n                                    const int w0, const int w1 HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ref.c:33,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/ref.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - uint8_t*
    - void*
    assertStmts:
    - condition: (data == user_data)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/dav1d/src/ref.c
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: default_free_callback
    functionSourceFile: /src/dav1d/src/ref.c
    functionUses: 0
    functionsReached:
    - dav1d_free_aligned
    - assert
    linkageType: ''
    returnType: void
    signature: void default_free_callback(const uint8_t *const data, void *const user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/ref.c:40,1
    - Dst: atomic_init
      Src: /src/dav1d/src/ref.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - type
    - size
    argTypes:
    - enum AllocationType
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: dav1d_ref_create
    functionSourceFile: /src/dav1d/src/ref.c
    functionUses: 0
    functionsReached:
    - dav1d_alloc_aligned
    - atomic_init
    linkageType: ''
    returnType: Dav1dRef
    signature: Dav1dRef *dav1d_ref_create(const enum AllocationType type, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_mem_pool_push
      Src: /src/dav1d/src/ref.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - uint8_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: pool_free_callback
    functionSourceFile: /src/dav1d/src/ref.c
    functionUses: 0
    functionsReached:
    - dav1d_mem_pool_push
    linkageType: ''
    returnType: void
    signature: void pool_free_callback(const uint8_t *const data, void *const user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_mem_pool_pop
      Src: /src/dav1d/src/ref.c:57,1
    - Dst: assert
      Src: /src/dav1d/src/ref.c:61,1
    - Dst: atomic_init
      Src: /src/dav1d/src/ref.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - size
    argTypes:
    - Dav1dMemPool*
    - size_t
    assertStmts:
    - condition: (sizeof(Dav1dMemPoolBuffer) + sizeof(Dav1dRef) <= 64)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/dav1d/src/ref.c
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: dav1d_ref_create_using_pool
    functionSourceFile: /src/dav1d/src/ref.c
    functionUses: 0
    functionsReached:
    - assert
    - dav1d_mem_pool_pop
    - atomic_init
    linkageType: ''
    returnType: Dav1dRef
    signature: Dav1dRef *dav1d_ref_create_using_pool(Dav1dMemPool *const pool, size_t
      size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ref.c:74,1
    - Dst: atomic_fetch_sub
      Src: /src/dav1d/src/ref.c:80,1
    - Dst: Dav1dRef*::free_callback
      Src: /src/dav1d/src/ref.c:82,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/ref.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pref
    argTypes:
    - Dav1dRef**
    assertStmts:
    - condition: (pref != NULL)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/dav1d/src/ref.c
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: dav1d_ref_dec
    functionSourceFile: /src/dav1d/src/ref.c
    functionUses: 0
    functionsReached:
    - atomic_fetch_sub
    - Dav1dRef*::free_callback
    - assert
    - dav1d_free
    linkageType: ''
    returnType: void
    signature: void dav1d_ref_dec(Dav1dRef **const pref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/dav1d/src/scan.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - last_nonzero_col_from_eob
    - scan
    - w
    - h
    argTypes:
    - uint8_t*
    - uint16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 331
    functionName: init_tbl
    functionSourceFile: /src/dav1d/src/scan.c
    functionUses: 0
    functionsReached:
    - imax
    linkageType: ''
    returnType: COLD
    signature: "COLD init_tbl(uint8_t *const last_nonzero_col_from_eob,\n                          const
      uint16_t *const scan, const int w, const int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:334,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:335,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:336,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:337,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:338,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:339,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:340,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:341,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:342,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:343,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:344,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:345,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:346,1
    - Dst: init_tbl
      Src: /src/dav1d/src/scan.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 348
    functionName: init_internal
    functionSourceFile: /src/dav1d/src/scan.c
    functionUses: 0
    functionsReached:
    - init_tbl
    linkageType: ''
    returnType: COLD
    signature: COLD init_internal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/dav1d/src/scan.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: dav1d_init_last_nonzero_col_from_eob_tables
    functionSourceFile: /src/dav1d/src/scan.c
    functionUses: 0
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_init_last_nonzero_col_from_eob_tables(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_apply_tmpl.c:45,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/cdef_apply_tmpl.c:47,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/cdef_apply_tmpl.c:49,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_apply_tmpl.c:52,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/cdef_apply_tmpl.c:55,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/cdef_apply_tmpl.c:56,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/cdef_apply_tmpl.c:59,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/cdef_apply_tmpl.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - dst
    - src
    - stride
    - layout
    argTypes:
    - pixel*[]
    - pixel*[]
    - ptrdiff_t[]
    - enum Dav1dPixelLayout
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: backup2lines
    functionSourceFile: /src/dav1d/src/cdef_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - pixel_copy
    linkageType: ''
    returnType: void
    signature: "void backup2lines(pixel *const dst[3], /*const*/ pixel *const src[3],\n
      \                        const ptrdiff_t stride[2],\n                         const
      enum Dav1dPixelLayout layout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_apply_tmpl.c:73,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/cdef_apply_tmpl.c:74,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_apply_tmpl.c:85,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/cdef_apply_tmpl.c:86,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/cdef_apply_tmpl.c:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - dst
    - src
    - src_stride
    - x_off
    - layout
    - flag
    argTypes:
    - pixel[][][]
    - pixel*[]
    - ptrdiff_t[]
    - int
    - enum Dav1dPixelLayout
    - enum Backup2x8Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 89
    functionName: backup2x8
    functionSourceFile: /src/dav1d/src/cdef_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - pixel_copy
    linkageType: ''
    returnType: void
    signature: "void backup2x8(pixel dst[3][8][2],\n                      /*const*/
      pixel *const src[3],\n                      const ptrdiff_t src_stride[2], int
      x_off,\n                      const enum Dav1dPixelLayout layout,\n                      const
      enum Backup2x8Flags flag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/cdef_apply_tmpl.c:93,1
    - Dst: ulog2
      Src: /src/dav1d/src/cdef_apply_tmpl.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - strength
    - var
    argTypes:
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: adjust_strength
    functionSourceFile: /src/dav1d/src/cdef_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - ulog2
    - imin
    linkageType: ''
    returnType: int
    signature: int adjust_strength(const int strength, const unsigned var)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_apply_tmpl.c:121,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_apply_tmpl.c:122,1
    - Dst: backup2lines
      Src: /src/dav1d/src/cdef_apply_tmpl.c:138,1
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/src/cdef_apply_tmpl.c:141,1
    - Dst: imin
      Src: /src/dav1d/src/cdef_apply_tmpl.c:178,1
    - Dst: backup2x8
      Src: /src/dav1d/src/cdef_apply_tmpl.c:195,1
    - Dst: backup2x8
      Src: /src/dav1d/src/cdef_apply_tmpl.c:199,1
    - Dst: Dav1dDSPContext*::cdef::dir
      Src: /src/dav1d/src/cdef_apply_tmpl.c:205,1
    - Dst: adjust_strength
      Src: /src/dav1d/src/cdef_apply_tmpl.c:238,1
    - Dst: assert
      Src: /src/dav1d/src/cdef_apply_tmpl.c:249,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_apply_tmpl.c:303,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_apply_tmpl.c:304,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_apply_tmpl.c:305,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 129
    argCount: 7
    argNames:
    - tc
    - p
    - lflvl
    - by_start
    - by_end
    - sbrow_start
    - sby
    argTypes:
    - Dav1dTaskContext*
    - pixel*[]
    - Av1Filter*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (layout != DAV1D_PIXEL_LAYOUT_I400)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/dav1d/src/cdef_apply_tmpl.c
    constantsTouched: []
    func_position:
      end: 308
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 308
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/cdef_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - backup2x8
    - imin
    - assert
    - Dav1dDSPContext*::cdef::dir
    - ALIGN_STK_16
    - adjust_strength
    - PXSTRIDE
    - backup2lines
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_cdef_brow)(Dav1dTaskContext *const tc,\n                             pixel
      *const p[3],\n                             const Av1Filter *const lflvl,\n                             const
      int by_start, const int by_end,\n                             const int sbrow_start,
      const int sby)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 8
    argNames:
    - mvstack
    - cnt
    - weight
    - b
    - ref
    - gmv
    - have_newmv_match
    - have_refmv_match
    argTypes:
    - refmvs_candidate*
    - int*
    - int
    - refmvs_block*
    - union refmvs_refpair
    - mv[]
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 95
    functionName: add_spatial_candidate
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void add_spatial_candidate(refmvs_candidate *const mvstack, int *const
      cnt,\n                                  const int weight, const refmvs_block
      *const b,\n                                  const union refmvs_refpair ref,
      const mv gmv[2],\n                                  int *const have_newmv_match,\n
      \                                 int *const have_refmv_match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:107,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:107,1
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:115,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:115,1
    - Dst: add_spatial_candidate
      Src: /src/dav1d/src/refmvs.c:116,1
    - Dst: add_spatial_candidate
      Src: /src/dav1d/src/refmvs.c:125,1
    - Dst: assert
      Src: /src/dav1d/src/refmvs.c:131,1
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 11
    argNames:
    - mvstack
    - cnt
    - ref
    - gmv
    - b
    - bw4
    - w4
    - max_rows
    - step
    - have_newmv_match
    - have_refmv_match
    argTypes:
    - refmvs_candidate*
    - int*
    - union refmvs_refpair
    - mv[]
    - refmvs_block*
    - int
    - int
    - int
    - int
    - int*
    - int*
    assertStmts:
    - condition: (cand_bw4 < bw4)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/dav1d/src/refmvs.c
    constantsTouched: []
    func_position:
      end: 134
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 134
    functionName: scan_row
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached:
    - imax
    - imin
    - add_spatial_candidate
    - assert
    linkageType: ''
    returnType: int
    signature: "int scan_row(refmvs_candidate *const mvstack, int *const cnt,\n                    const
      union refmvs_refpair ref, const mv gmv[2],\n                    const refmvs_block
      *b, const int bw4, const int w4,\n                    const int max_rows, const
      int step,\n                    int *const have_newmv_match, int *const have_refmv_match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:146,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:146,1
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:154,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:154,1
    - Dst: add_spatial_candidate
      Src: /src/dav1d/src/refmvs.c:155,1
    - Dst: add_spatial_candidate
      Src: /src/dav1d/src/refmvs.c:164,1
    - Dst: assert
      Src: /src/dav1d/src/refmvs.c:170,1
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 12
    argNames:
    - mvstack
    - cnt
    - ref
    - gmv
    - b
    - bh4
    - h4
    - bx4
    - max_cols
    - step
    - have_newmv_match
    - have_refmv_match
    argTypes:
    - refmvs_candidate*
    - int*
    - union refmvs_refpair
    - mv[]
    - refmvs_block**
    - int
    - int
    - int
    - int
    - int
    - int*
    - int*
    assertStmts:
    - condition: (cand_bh4 < bh4)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/dav1d/src/refmvs.c
    constantsTouched: []
    func_position:
      end: 173
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 173
    functionName: scan_col
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached:
    - imax
    - imin
    - add_spatial_candidate
    - assert
    linkageType: ''
    returnType: int
    signature: "int scan_col(refmvs_candidate *const mvstack, int *const cnt,\n                    const
      union refmvs_refpair ref, const mv gmv[2],\n                    /*const*/ refmvs_block
      *const *b, const int bh4, const int h4,\n                    const int bx4,
      const int max_cols, const int step,\n                    int *const have_newmv_match,
      int *const have_refmv_match)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/refmvs.c:182,1
    - Dst: assert
      Src: /src/dav1d/src/refmvs.c:183,1
    - Dst: iclip
      Src: /src/dav1d/src/refmvs.c:188,1
    - Dst: iclip
      Src: /src/dav1d/src/refmvs.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - mv
    - num
    - den
    argTypes:
    - union mv
    - int
    - int
    assertStmts:
    - condition: (den > 0 && den < 32)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/dav1d/src/refmvs.c
    - condition: (num > -32 && num < 32)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/dav1d/src/refmvs.c
    constantsTouched: []
    func_position:
      end: 191
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 191
    functionName: mv_projection
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached:
    - iclip
    - assert
    linkageType: ''
    returnType: union mv
    signature: union mv mv_projection(const union mv mv, const int num, const int
      den)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mv_projection
      Src: /src/dav1d/src/refmvs.c:201,1
    - Dst: fix_mv_precision
      Src: /src/dav1d/src/refmvs.c:202,1
    - Dst: abs
      Src: /src/dav1d/src/refmvs.c:207,1
    - Dst: abs
      Src: /src/dav1d/src/refmvs.c:207,1
    - Dst: mv_projection
      Src: /src/dav1d/src/refmvs.c:222,1
    - Dst: fix_mv_precision
      Src: /src/dav1d/src/refmvs.c:224,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 7
    argNames:
    - rf
    - mvstack
    - cnt
    - rb
    - ref
    - globalmv_ctx
    - gmv
    argTypes:
    - refmvs_frame*
    - refmvs_candidate*
    - int*
    - refmvs_temporal_block*
    - union refmvs_refpair
    - int*
    - union mv[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 237
    functionName: add_temporal_candidate
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached:
    - fix_mv_precision
    - mv_projection
    - abs
    linkageType: ''
    returnType: void
    signature: "void add_temporal_candidate(const refmvs_frame *const rf,\n                                   refmvs_candidate
      *const mvstack, int *const cnt,\n                                   const refmvs_temporal_block
      *const rb,\n                                   const union refmvs_refpair ref,
      int *const globalmv_ctx,\n                                   const union mv
      gmv[])"
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 7
    argNames:
    - same
    - same_count
    - cand_b
    - sign0
    - sign1
    - ref
    - sign_bias
    argTypes:
    - refmvs_candidate*
    - int*
    - refmvs_block*
    - int
    - int
    - union refmvs_refpair
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 294
    functionName: add_compound_extended_candidate
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void add_compound_extended_candidate(refmvs_candidate *const same,\n
      \                                           int *const same_count,\n                                            const
      refmvs_block *const cand_b,\n                                            const
      int sign0, const int sign1,\n                                            const
      union refmvs_refpair ref,\n                                            const
      uint8_t *const sign_bias)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 5
    argNames:
    - mvstack
    - cnt
    - cand_b
    - sign
    - sign_bias
    argTypes:
    - refmvs_candidate[]
    - int*
    - refmvs_block*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 327
    functionName: add_single_extended_candidate
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void add_single_extended_candidate(refmvs_candidate mvstack[8], int
      *const cnt,\n                                          const refmvs_block *const
      cand_b,\n                                          const int sign, const uint8_t
      *const sign_bias)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:357,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:357,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:358,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:358,1
    - Dst: assert
      Src: /src/dav1d/src/refmvs.c:362,1
    - Dst: get_gmv_2d
      Src: /src/dav1d/src/refmvs.c:365,1
    - Dst: get_gmv_2d
      Src: /src/dav1d/src/refmvs.c:374,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:385,1
    - Dst: scan_row
      Src: /src/dav1d/src/refmvs.c:387,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:396,1
    - Dst: scan_col
      Src: /src/dav1d/src/refmvs.c:398,1
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:405,1
    - Dst: add_spatial_candidate
      Src: /src/dav1d/src/refmvs.c:407,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:424,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:424,1
    - Dst: add_temporal_candidate
      Src: /src/dav1d/src/refmvs.c:427,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:432,1
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:432,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:435,1
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:437,1
    - Dst: add_temporal_candidate
      Src: /src/dav1d/src/refmvs.c:438,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:441,1
    - Dst: add_temporal_candidate
      Src: /src/dav1d/src/refmvs.c:443,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:446,1
    - Dst: add_temporal_candidate
      Src: /src/dav1d/src/refmvs.c:447,1
    - Dst: assert
      Src: /src/dav1d/src/refmvs.c:453,1
    - Dst: add_spatial_candidate
      Src: /src/dav1d/src/refmvs.c:458,1
    - Dst: scan_row
      Src: /src/dav1d/src/refmvs.c:466,1
    - Dst: scan_col
      Src: /src/dav1d/src/refmvs.c:473,1
    - Dst: assert
      Src: /src/dav1d/src/refmvs.c:479,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:487,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:491,1
    - Dst: EXCHANGE
      Src: /src/dav1d/src/refmvs.c:507,1
    - Dst: EXCHANGE
      Src: /src/dav1d/src/refmvs.c:518,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:530,1
    - Dst: add_compound_extended_candidate
      Src: /src/dav1d/src/refmvs.c:537,1
    - Dst: add_compound_extended_candidate
      Src: /src/dav1d/src/refmvs.c:545,1
    - Dst: iclip
      Src: /src/dav1d/src/refmvs.c:593,1
    - Dst: iclip
      Src: /src/dav1d/src/refmvs.c:594,1
    - Dst: iclip
      Src: /src/dav1d/src/refmvs.c:595,1
    - Dst: iclip
      Src: /src/dav1d/src/refmvs.c:596,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:601,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:604,1
    - Dst: iclip
      Src: /src/dav1d/src/refmvs.c:607,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:614,1
    - Dst: add_single_extended_candidate
      Src: /src/dav1d/src/refmvs.c:619,1
    - Dst: add_single_extended_candidate
      Src: /src/dav1d/src/refmvs.c:626,1
    - Dst: assert
      Src: /src/dav1d/src/refmvs.c:630,1
    - Dst: iclip
      Src: /src/dav1d/src/refmvs.c:642,1
    - Dst: iclip
      Src: /src/dav1d/src/refmvs.c:643,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 173
    argCount: 9
    argNames:
    - rt
    - mvstack
    - cnt
    - ctx
    - ref
    - bs
    - edge_flags
    - by4
    - bx4
    argTypes:
    - refmvs_tile*
    - refmvs_candidate[]
    - int*
    - int*
    - union refmvs_refpair
    - enum BlockSize
    - enum EdgeFlags
    - int
    - int
    assertStmts:
    - condition: (*cnt <= 8)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/dav1d/src/refmvs.c
    - condition: (*cnt <= 8)
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/dav1d/src/refmvs.c
    - condition: "(ref.ref[0] >=  0 && ref.ref[0] <= 8 &&\n           ref.ref[1] >=
        -1 && ref.ref[1] <= 8)"
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/dav1d/src/refmvs.c
    - condition: (*cnt <= 8)
      pos:
        line_end: 629
        line_start: 629
        source_file: /src/dav1d/src/refmvs.c
    constantsTouched: []
    func_position:
      end: 651
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 651
    functionName: dav1d_refmvs_find
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached:
    - imin
    - EXCHANGE
    - add_single_extended_candidate
    - assert
    - scan_row
    - add_compound_extended_candidate
    - imax
    - add_temporal_candidate
    - scan_col
    - iclip
    - get_gmv_2d
    - add_spatial_candidate
    linkageType: ''
    returnType: void
    signature: "void dav1d_refmvs_find(const refmvs_tile *const rt,\n                       refmvs_candidate
      mvstack[8], int *const cnt,\n                       int *const ctx,\n                       const
      union refmvs_refpair ref, const enum BlockSize bs,\n                       const
      enum EdgeFlags edge_flags,\n                       const int by4, const int
      bx4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: EXCHANGE
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXCHANGE(a, b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EXCHANGE
      Src: /src/dav1d/src/refmvs.c:677,1
    - Dst: EXCHANGE
      Src: /src/dav1d/src/refmvs.c:678,1
    - Dst: EXCHANGE
      Src: /src/dav1d/src/refmvs.c:679,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:685,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 9
    argNames:
    - rt
    - rf
    - tile_col_start4
    - tile_col_end4
    - tile_row_start4
    - tile_row_end4
    - sby
    - tile_row_idx
    - pass
    argTypes:
    - refmvs_tile*
    - refmvs_frame*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 688
    functionName: dav1d_refmvs_tile_sbrow_init
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached:
    - imin
    - EXCHANGE
    linkageType: ''
    returnType: void
    signature: "void dav1d_refmvs_tile_sbrow_init(refmvs_tile *const rt, const refmvs_frame
      *const rf,\n                                  const int tile_col_start4, const
      int tile_col_end4,\n                                  const int tile_row_start4,
      const int tile_row_end4,\n                                  const int sby, int
      tile_row_idx, const int pass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 677
    functionName: EXCHANGE
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXCHANGE(a, b)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/refmvs.c:695,1
    - Dst: assert
      Src: /src/dav1d/src/refmvs.c:696,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:697,1
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:698,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:699,1
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:720,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:721,1
    - Dst: mv_projection
      Src: /src/dav1d/src/refmvs.c:729,1
    - Dst: apply_sign
      Src: /src/dav1d/src/refmvs.c:730,1
    - Dst: abs
      Src: /src/dav1d/src/refmvs.c:730,1
    - Dst: apply_sign
      Src: /src/dav1d/src/refmvs.c:732,1
    - Dst: abs
      Src: /src/dav1d/src/refmvs.c:732,1
    - Dst: imax
      Src: /src/dav1d/src/refmvs.c:738,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.c:739,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 48
    argCount: 6
    argNames:
    - rf
    - tile_row_idx
    - col_start8
    - col_end8
    - row_start8
    - row_end8
    argTypes:
    - refmvs_frame*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (row_start8 >= 0)
      pos:
        line_end: 694
        line_start: 694
        source_file: /src/dav1d/src/refmvs.c
    - condition: ((unsigned) (row_end8 - row_start8) <= 16U)
      pos:
        line_end: 695
        line_start: 695
        source_file: /src/dav1d/src/refmvs.c
    constantsTouched: []
    func_position:
      end: 761
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 761
    functionName: load_tmvs_c
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached:
    - imin
    - assert
    - mv_projection
    - abs
    - imax
    - apply_sign
    linkageType: ''
    returnType: void
    signature: "void load_tmvs_c(const refmvs_frame *const rf, int tile_row_idx,\n
      \                       const int col_start8, const int col_end8,\n                        const
      int row_start8, int row_end8)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/dav1d/src/refmvs.c:777,1
    - Dst: abs
      Src: /src/dav1d/src/refmvs.c:777,1
    - Dst: abs
      Src: /src/dav1d/src/refmvs.c:783,1
    - Dst: abs
      Src: /src/dav1d/src/refmvs.c:783,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 8
    argNames:
    - rp
    - stride
    - rr
    - ref_sign
    - col_end8
    - row_end8
    - col_start8
    - row_start8
    argTypes:
    - refmvs_temporal_block*
    - ptrdiff_t
    - refmvs_block**
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 797
    functionName: save_tmvs_c
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: void
    signature: "void save_tmvs_c(refmvs_temporal_block *rp, const ptrdiff_t stride,\n
      \                       refmvs_block *const *const rr,\n                        const
      uint8_t *const ref_sign,\n                        const int col_end8, const
      int row_end8,\n                        const int col_start8, const int row_start8)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/refmvs.c:828,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/refmvs.c:829,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/refmvs.c:832,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/refmvs.c:841,1
    - Dst: iclip
      Src: /src/dav1d/src/refmvs.c:845,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/refmvs.c:845,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/refmvs.c:858,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/refmvs.c:863,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/refmvs.c:869,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/refmvs.c:879,1
    - Dst: abs
      Src: /src/dav1d/src/refmvs.c:881,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/refmvs.c:887,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 9
    argNames:
    - rf
    - seq_hdr
    - frm_hdr
    - ref_poc
    - rp
    - ref_ref_poc
    - rp_ref
    - n_tile_threads
    - n_frame_threads
    argTypes:
    - refmvs_frame*
    - Dav1dSequenceHeader*
    - Dav1dFrameHeader*
    - uint8_t[]
    - refmvs_temporal_block*
    - uint8_t[][]
    - refmvs_temporal_block*[]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 898
    functionName: dav1d_refmvs_init_frame
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached:
    - dav1d_free_aligned
    - abs
    - dav1d_alloc_aligned
    - get_poc_diff
    - iclip
    - DAV1D_ERR
    linkageType: ''
    returnType: int
    signature: "int dav1d_refmvs_init_frame(refmvs_frame *const rf,\n                            const
      Dav1dSequenceHeader *const seq_hdr,\n                            const Dav1dFrameHeader
      *const frm_hdr,\n                            const uint8_t ref_poc[7],\n                            refmvs_temporal_block
      *const rp,\n                            const uint8_t ref_ref_poc[7][7],\n                            /*const*/
      refmvs_temporal_block *const rp_ref[7],\n                            const int
      n_tile_threads, const int n_frame_threads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - rr
    - rmv
    - bx4
    - bw4
    - bh4
    argTypes:
    - refmvs_block**
    - refmvs_block*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 908
    functionName: splat_mv_c
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void splat_mv_c(refmvs_block **rr, const refmvs_block *const rmv,\n
      \                      const int bx4, const int bw4, int bh4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: refmvs_dsp_init_arm
      Src: /src/dav1d/src/refmvs.c:928,1
    - Dst: refmvs_dsp_init_loongarch
      Src: /src/dav1d/src/refmvs.c:930,1
    - Dst: refmvs_dsp_init_x86
      Src: /src/dav1d/src/refmvs.c:932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dRefmvsDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 935
    functionName: dav1d_refmvs_dsp_init
    functionSourceFile: /src/dav1d/src/refmvs.c
    functionUses: 1
    functionsReached:
    - refmvs_dsp_init_loongarch
    - refmvs_dsp_init_x86
    - refmvs_dsp_init_arm
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_refmvs_dsp_init(Dav1dRefmvsDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: CLIP
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIP(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:69,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:86,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:87,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:88,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - c
    - stride
    - min
    - max
    - tx64
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    - int
    assertStmts:
    - condition: (stride > 0)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 90
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 90
    functionName: inv_dct4_1d_internal_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - CLIP
    - assert
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE inv_dct4_1d_internal_c(int32_t *const c, const ptrdiff_t
      stride,\n                       const int min, const int max, const int tx64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inv_dct4_1d_internal_c
      Src: /src/dav1d/src/itx_1d.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - c
    - stride
    - min
    - max
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: inv_dct4_1d_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - inv_dct4_1d_internal_c
    linkageType: ''
    returnType: void
    signature: "void inv_dct4_1d_c(int32_t *const c, const ptrdiff_t stride,\n                          const
      int min, const int max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:102,1
    - Dst: inv_dct4_1d_internal_c
      Src: /src/dav1d/src/itx_1d.c:103,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:122,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:123,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:124,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:125,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:135,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:136,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:137,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:138,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:139,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:140,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:141,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 5
    argNames:
    - c
    - stride
    - min
    - max
    - tx64
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    - int
    assertStmts:
    - condition: (stride > 0)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 143
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 143
    functionName: inv_dct8_1d_internal_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - CLIP
    - assert
    - inv_dct4_1d_internal_c
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE inv_dct8_1d_internal_c(int32_t *const c, const ptrdiff_t
      stride,\n                       const int min, const int max, const int tx64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inv_dct8_1d_internal_c
      Src: /src/dav1d/src/itx_1d.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - c
    - stride
    - min
    - max
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: inv_dct8_1d_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - inv_dct8_1d_internal_c
    linkageType: ''
    returnType: void
    signature: "void inv_dct8_1d_c(int32_t *const c, const ptrdiff_t stride,\n                          const
      int min, const int max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:155,1
    - Dst: inv_dct8_1d_internal_c
      Src: /src/dav1d/src/itx_1d.c:156,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:185,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:186,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:187,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:188,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:189,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:190,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:191,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:192,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:199,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:200,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:201,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:202,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:203,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:204,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:205,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:206,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:222,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:223,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:224,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:225,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:226,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:227,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:228,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:229,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:230,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:231,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:232,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:233,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:234,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:235,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:236,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 54
    argCount: 5
    argNames:
    - c
    - stride
    - min
    - max
    - tx64
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    - int
    assertStmts:
    - condition: (stride > 0)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 238
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 238
    functionName: inv_dct16_1d_internal_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - CLIP
    - inv_dct8_1d_internal_c
    - assert
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE inv_dct16_1d_internal_c(int32_t *const c, const ptrdiff_t
      stride,\n                        const int min, const int max, int tx64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inv_dct16_1d_internal_c
      Src: /src/dav1d/src/itx_1d.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - c
    - stride
    - min
    - max
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 4
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: inv_dct16_1d_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - inv_dct16_1d_internal_c
    linkageType: ''
    returnType: void
    signature: "void inv_dct16_1d_c(int32_t *const c, const ptrdiff_t stride,\n                           const
      int min, const int max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:250,1
    - Dst: inv_dct16_1d_internal_c
      Src: /src/dav1d/src/itx_1d.c:251,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:301,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:302,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:303,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:304,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:305,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:306,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:307,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:308,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:309,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:310,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:311,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:312,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:313,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:314,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:315,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:316,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:327,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:328,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:329,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:330,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:331,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:332,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:333,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:334,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:335,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:336,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:337,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:338,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:339,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:340,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:341,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:342,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:353,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:354,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:355,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:356,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:357,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:358,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:359,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:360,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:361,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:362,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:363,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:364,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:365,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:366,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:367,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:368,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:396,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:397,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:398,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:399,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:400,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:401,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:402,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:403,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:404,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:405,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:406,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:407,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:408,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:409,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:410,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:411,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:412,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:413,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:414,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:415,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:416,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:417,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:418,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:419,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:420,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:421,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:422,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:423,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:424,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:425,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:426,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 126
    argCount: 5
    argNames:
    - c
    - stride
    - min
    - max
    - tx64
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    - int
    assertStmts:
    - condition: (stride > 0)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 428
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 428
    functionName: inv_dct32_1d_internal_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - CLIP
    - assert
    - inv_dct16_1d_internal_c
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE inv_dct32_1d_internal_c(int32_t *const c, const ptrdiff_t
      stride,\n                        const int min, const int max, const int tx64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inv_dct32_1d_internal_c
      Src: /src/dav1d/src/itx_1d.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - c
    - stride
    - min
    - max
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 5
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: inv_dct32_1d_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - inv_dct32_1d_internal_c
    linkageType: ''
    returnType: void
    signature: "void inv_dct32_1d_c(int32_t *const c, const ptrdiff_t stride,\n                           const
      int min, const int max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:439,1
    - Dst: inv_dct32_1d_internal_c
      Src: /src/dav1d/src/itx_1d.c:440,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:484,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:485,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:486,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:487,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:488,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:489,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:490,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:491,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:492,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:493,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:494,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:495,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:496,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:497,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:498,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:499,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:500,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:501,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:502,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:503,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:504,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:505,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:506,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:507,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:508,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:509,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:510,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:511,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:512,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:513,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:514,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:515,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:534,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:535,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:536,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:537,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:538,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:539,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:540,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:541,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:542,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:543,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:544,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:545,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:546,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:547,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:548,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:549,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:550,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:551,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:552,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:553,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:554,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:555,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:556,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:557,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:558,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:559,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:560,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:561,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:562,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:563,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:564,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:565,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:584,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:585,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:586,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:587,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:588,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:589,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:590,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:591,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:592,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:593,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:594,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:595,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:596,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:597,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:598,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:599,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:600,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:601,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:602,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:603,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:604,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:605,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:606,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:607,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:608,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:609,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:610,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:611,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:612,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:613,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:614,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:615,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:634,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:635,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:636,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:637,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:638,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:639,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:640,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:641,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:642,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:643,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:644,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:645,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:646,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:647,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:648,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:649,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:650,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:651,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:652,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:653,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:654,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:655,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:656,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:657,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:658,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:659,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:660,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:661,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:662,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:663,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:664,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:665,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:717,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:718,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:719,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:720,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:721,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:722,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:723,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:724,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:725,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:726,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:727,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:728,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:729,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:730,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:731,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:732,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:733,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:734,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:735,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:736,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:737,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:738,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:739,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:740,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:741,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:742,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:743,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:744,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:745,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:746,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:747,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:748,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:749,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:750,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:751,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:752,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:753,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:754,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:755,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:756,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:757,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:758,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:759,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:760,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:761,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:762,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:763,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:764,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:765,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:766,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:767,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:768,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:769,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:770,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:771,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:772,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:773,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:774,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:775,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:776,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:777,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:778,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:779,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 227
    argCount: 4
    argNames:
    - c
    - stride
    - min
    - max
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    assertStmts:
    - condition: (stride > 0)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 781
      start: 436
    functionDepth: 5
    functionLinenumber: 436
    functionLinenumberEnd: 781
    functionName: inv_dct64_1d_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - CLIP
    - assert
    - inv_dct32_1d_internal_c
    linkageType: ''
    returnType: void
    signature: "void inv_dct64_1d_c(int32_t *const c, const ptrdiff_t stride,\n                           const
      int min, const int max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - in
    - in_s
    - min
    - max
    - out
    - out_s
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    - int32_t*
    - ptrdiff_t
    assertStmts:
    - condition: (in_s > 0 && out_s != 0)
      pos:
        line_end: 787
        line_start: 787
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 802
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 802
    functionName: inv_adst4_1d_internal_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE inv_adst4_1d_internal_c(const int32_t *const in, const ptrdiff_t
      in_s,\n                        const int min, const int max,\n                        int32_t
      *const out, const ptrdiff_t out_s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:809,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:824,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:825,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:826,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:827,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:828,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:829,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:830,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:831,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:838,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:839,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:840,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:841,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:842,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:843,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:844,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 6
    argNames:
    - in
    - in_s
    - min
    - max
    - out
    - out_s
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    - int32_t*
    - ptrdiff_t
    assertStmts:
    - condition: (in_s > 0 && out_s != 0)
      pos:
        line_end: 808
        line_start: 808
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 851
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 851
    functionName: inv_adst8_1d_internal_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - CLIP
    - assert
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE inv_adst8_1d_internal_c(const int32_t *const in, const ptrdiff_t
      in_s,\n                        const int min, const int max,\n                        int32_t
      *const out, const ptrdiff_t out_s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:858,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:885,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:886,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:887,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:888,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:889,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:890,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:891,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:892,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:893,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:894,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:895,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:896,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:897,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:898,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:899,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:900,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:911,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:912,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:913,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:914,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:915,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:916,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:917,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:918,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:919,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:920,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:921,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:922,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:923,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:924,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:925,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:926,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:937,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:938,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:939,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:940,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:941,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:942,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:943,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:944,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:945,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:946,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:947,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:948,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:949,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:950,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:951,1
    - Dst: CLIP
      Src: /src/dav1d/src/itx_1d.c:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 6
    argNames:
    - in
    - in_s
    - min
    - max
    - out
    - out_s
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    - int32_t*
    - ptrdiff_t
    assertStmts:
    - condition: (in_s > 0 && out_s != 0)
      pos:
        line_end: 857
        line_start: 857
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 962
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 962
    functionName: inv_adst16_1d_internal_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - CLIP
    - assert
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE inv_adst16_1d_internal_c(const int32_t *const in, const ptrdiff_t
      in_s,\n                         const int min, const int max,\n                         int32_t
      *const out, const ptrdiff_t out_s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 976
    functionName: inv_adst_1d
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_adst_1d(sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - c
    - stride
    - min
    - max
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    assertStmts:
    - condition: (stride > 0)
      pos:
        line_end: 985
        line_start: 985
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 991
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 991
    functionName: inv_identity4_1d_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void inv_identity4_1d_c(int32_t *const c, const ptrdiff_t stride,\n
      \                              const int min, const int max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - c
    - stride
    - min
    - max
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    assertStmts:
    - condition: (stride > 0)
      pos:
        line_end: 995
        line_start: 995
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 999
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 999
    functionName: inv_identity8_1d_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void inv_identity8_1d_c(int32_t *const c, const ptrdiff_t stride,\n
      \                              const int min, const int max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - c
    - stride
    - min
    - max
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    assertStmts:
    - condition: (stride > 0)
      pos:
        line_end: 1003
        line_start: 1003
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 1009
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1009
    functionName: inv_identity16_1d_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void inv_identity16_1d_c(int32_t *const c, const ptrdiff_t stride,\n
      \                               const int min, const int max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:1014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - c
    - stride
    - min
    - max
    argTypes:
    - int32_t*
    - ptrdiff_t
    - int
    - int
    assertStmts:
    - condition: (stride > 0)
      pos:
        line_end: 1013
        line_start: 1013
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 1017
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1017
    functionName: inv_identity32_1d_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void inv_identity32_1d_c(int32_t *const c, const ptrdiff_t stride,\n
      \                               const int min, const int max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_1d.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - stride
    argTypes:
    - int32_t*
    - ptrdiff_t
    assertStmts:
    - condition: (stride > 0)
      pos:
        line_end: 1066
        line_start: 1066
        source_file: /src/dav1d/src/itx_1d.c
    constantsTouched: []
    func_position:
      end: 1081
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1081
    functionName: dav1d_inv_wht4_1d_c
    functionSourceFile: /src/dav1d/src/itx_1d.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void dav1d_inv_wht4_1d_c(int32_t *const c, const ptrdiff_t stride)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - node
    - bl
    - edge_flags
    argTypes:
    - EdgeNode*
    - enum BlockLevel
    - enum EdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 92
    functionName: init_edges
    functionSourceFile: /src/dav1d/src/intra_edge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: COLD
    signature: "COLD init_edges(EdgeNode *const node,\n                            const
      enum BlockLevel bl,\n                            const enum EdgeFlags edge_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: PTR_OFFSET
    functionSourceFile: /src/dav1d/src/intra_edge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_OFFSET(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_edges
      Src: /src/dav1d/src/intra_edge.c:102,1
    - Dst: PTR_OFFSET
      Src: /src/dav1d/src/intra_edge.c:108,1
    - Dst: init_edges
      Src: /src/dav1d/src/intra_edge.c:109,1
    - Dst: PTR_OFFSET
      Src: /src/dav1d/src/intra_edge.c:118,1
    - Dst: init_mode_node
      Src: /src/dav1d/src/intra_edge.c:119,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 5
    argNames:
    - nwc
    - bl
    - mem
    - top_has_right
    - left_has_bottom
    argTypes:
    - EdgeBranch*
    - enum BlockLevel
    - struct ModeSelMem*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 124
    functionName: init_mode_node
    functionSourceFile: /src/dav1d/src/intra_edge.c
    functionUses: 1
    functionsReached:
    - init_mode_node
    - init_edges
    - PTR_OFFSET
    linkageType: ''
    returnType: COLD
    signature: "COLD init_mode_node(EdgeBranch *const nwc,\n                               const
      enum BlockLevel bl,\n                               struct ModeSelMem *const
      mem,\n                               const int top_has_right,\n                               const
      int left_has_bottom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_mode_node
      Src: /src/dav1d/src/intra_edge.c:134,1
    - Dst: assert
      Src: /src/dav1d/src/intra_edge.c:135,1
    - Dst: assert
      Src: /src/dav1d/src/intra_edge.c:136,1
    - Dst: assert
      Src: /src/dav1d/src/intra_edge.c:137,1
    - Dst: assert
      Src: /src/dav1d/src/intra_edge.c:138,1
    - Dst: init_mode_node
      Src: /src/dav1d/src/intra_edge.c:144,1
    - Dst: assert
      Src: /src/dav1d/src/intra_edge.c:145,1
    - Dst: assert
      Src: /src/dav1d/src/intra_edge.c:146,1
    - Dst: assert
      Src: /src/dav1d/src/intra_edge.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mem.nwc[BL_128X128] == &nodes.branch_sb128[1 + 4])
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/dav1d/src/intra_edge.c
    - condition: (mem.nwc[BL_64X64] == &nodes.branch_sb128[1 + 4 + 16])
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/dav1d/src/intra_edge.c
    - condition: (mem.nwc[BL_32X32] == &nodes.branch_sb128[1 + 4 + 16 + 64])
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/dav1d/src/intra_edge.c
    - condition: (mem.nt == &nodes.tip_sb128[256])
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/dav1d/src/intra_edge.c
    - condition: (mem.nwc[BL_64X64] == &nodes.branch_sb64[1 + 4])
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/dav1d/src/intra_edge.c
    - condition: (mem.nwc[BL_32X32] == &nodes.branch_sb64[1 + 4 + 16])
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/dav1d/src/intra_edge.c
    - condition: (mem.nt == &nodes.tip_sb64[64])
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/dav1d/src/intra_edge.c
    constantsTouched: []
    func_position:
      end: 148
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 148
    functionName: dav1d_init_intra_edge_tree
    functionSourceFile: /src/dav1d/src/intra_edge.c
    functionUses: 0
    functionsReached:
    - init_mode_node
    - assert
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_init_intra_edge_tree(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ctx.h:45,1
    - Dst: ulog2
      Src: /src/dav1d/src/ctx.h:47,1
    - Dst: memset
      Src: /src/dav1d/src/ctx.h:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - n
    argTypes:
    - void*
    - int
    - int
    assertStmts:
    - condition: (n >= 1 && n <= 32)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/dav1d/src/ctx.h
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: dav1d_memset_likely_pow2
    functionSourceFile: /src/dav1d/src/ctx.h
    functionUses: 0
    functionsReached:
    - ulog2
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: void dav1d_memset_likely_pow2(void *const ptr, const int value, const
      int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: set_ctx1
    functionSourceFile: /src/dav1d/src/ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx1(var, off, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: set_ctx2
    functionSourceFile: /src/dav1d/src/ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx2(var, off, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: set_ctx4
    functionSourceFile: /src/dav1d/src/ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx4(var, off, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: set_ctx8
    functionSourceFile: /src/dav1d/src/ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx8(var, off, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: set_ctx16
    functionSourceFile: /src/dav1d/src/ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx16(var, off, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: set_ctx32
    functionSourceFile: /src/dav1d/src/ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx32(var, off, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: case_set
    functionSourceFile: /src/dav1d/src/ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: case_set(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: case_set_upto16
    functionSourceFile: /src/dav1d/src/ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: case_set_upto16(var)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: decomp_tx
      Src: /src/dav1d/src/lf_mask.c:53,1
    - Dst: decomp_tx
      Src: /src/dav1d/src/lf_mask.c:55,1
    - Dst: decomp_tx
      Src: /src/dav1d/src/lf_mask.c:58,1
    - Dst: decomp_tx
      Src: /src/dav1d/src/lf_mask.c:61,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:65,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:65,1
    - Dst: case_set_upto16
      Src: /src/dav1d/src/lf_mask.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - (*const txa)
    - from
    - depth
    - y_off
    - x_off
    - tx_masks
    argTypes:
    - uint8_t[][][]
    - enum RectTxfmSize
    - int
    - int
    - int
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 77
    functionName: decomp_tx
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 1
    functionsReached:
    - decomp_tx
    - imin
    - case_set_upto16
    linkageType: ''
    returnType: void
    signature: "void decomp_tx(uint8_t (*const txa)[2 /* txsz, step */][32 /* y */][32
      /* x */],\n                      const enum RectTxfmSize from,\n                      const
      int depth,\n                      const int y_off, const int x_off,\n                      const
      uint16_t *const tx_masks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rep_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: set_ctx
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx(rep_macro)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decomp_tx
      Src: /src/dav1d/src/lf_mask.c:92,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:100,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:107,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:119,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:135,1
    - Dst: memcpy
      Src: /src/dav1d/src/lf_mask.c:144,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 10
    argNames:
    - (*const masks)
    - by4
    - bx4
    - w4
    - h4
    - skip
    - max_tx
    - tx_masks
    - a
    - l
    argTypes:
    - uint16_t[][][]
    - int
    - int
    - int
    - int
    - int
    - enum RectTxfmSize
    - uint16_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 145
    functionName: mask_edges_inter
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 0
    functionsReached:
    - decomp_tx
    - imin
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void mask_edges_inter(uint16_t (*const masks)[32][3][2],\n                                    const
      int by4, const int bx4,\n                                    const int w4, const
      int h4, const int skip,\n                                    const enum RectTxfmSize
      max_tx,\n                                    const uint16_t *const tx_masks,\n
      \                                   uint8_t *const a, uint8_t *const l)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:155,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:155,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:163,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:170,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/lf_mask.c:196,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/lf_mask.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 8
    argNames:
    - (*const masks)
    - by4
    - bx4
    - w4
    - h4
    - tx
    - a
    - l
    argTypes:
    - uint16_t[][][]
    - int
    - int
    - int
    - int
    - enum RectTxfmSize
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 198
    functionName: mask_edges_intra
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 0
    functionsReached:
    - imin
    - dav1d_memset_likely_pow2
    linkageType: ''
    returnType: void
    signature: "void mask_edges_intra(uint16_t (*const masks)[32][3][2],\n                                    const
      int by4, const int bx4,\n                                    const int w4, const
      int h4,\n                                    const enum RectTxfmSize tx,\n                                    uint8_t
      *const a, uint8_t *const l)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:221,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:228,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/lf_mask.c:255,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/lf_mask.c:256,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 11
    argNames:
    - (*const masks)
    - cby4
    - cbx4
    - cw4
    - ch4
    - skip_inter
    - tx
    - a
    - l
    - ss_hor
    - ss_ver
    argTypes:
    - uint16_t[][][]
    - int
    - int
    - int
    - int
    - int
    - enum RectTxfmSize
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 257
    functionName: mask_edges_chroma
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 0
    functionsReached:
    - imin
    - dav1d_memset_likely_pow2
    linkageType: ''
    returnType: void
    signature: "void mask_edges_chroma(uint16_t (*const masks)[32][2][2],\n                              const
      int cby4, const int cbx4,\n                              const int cw4, const
      int ch4,\n                              const int skip_inter,\n                              const
      enum RectTxfmSize tx,\n                              uint8_t *const a, uint8_t
      *const l,\n                              const int ss_hor, const int ss_ver)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:273,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:274,1
    - Dst: assert
      Src: /src/dav1d/src/lf_mask.c:277,1
    - Dst: mask_edges_intra
      Src: /src/dav1d/src/lf_mask.c:289,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:296,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:298,1
    - Dst: assert
      Src: /src/dav1d/src/lf_mask.c:300,1
    - Dst: mask_edges_chroma
      Src: /src/dav1d/src/lf_mask.c:317,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 16
    argNames:
    - lflvl
    - (*const level_cache)
    - b4_stride
    - (*filter_level)
    - bx
    - by
    - iw
    - ih
    - bs
    - ytx
    - uvtx
    - layout
    - ay
    - ly
    - auv
    - luv
    argTypes:
    - Av1Filter*
    - uint8_t[]
    - ptrdiff_t
    - uint8_t[][]
    - int
    - int
    - int
    - int
    - enum BlockSize
    - enum RectTxfmSize
    - enum RectTxfmSize
    - enum Dav1dPixelLayout
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts:
    - condition: (bw4 >= 0 && bh4 >= 0)
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/dav1d/src/lf_mask.c
    - condition: (cbw4 >= 0 && cbh4 >= 0)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/dav1d/src/lf_mask.c
    constantsTouched: []
    func_position:
      end: 319
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 319
    functionName: dav1d_create_lf_mask_intra
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 0
    functionsReached:
    - mask_edges_intra
    - imin
    - assert
    - mask_edges_chroma
    linkageType: ''
    returnType: void
    signature: "void dav1d_create_lf_mask_intra(Av1Filter *const lflvl,\n                                uint8_t
      (*const level_cache)[4],\n                                const ptrdiff_t b4_stride,\n
      \                               const uint8_t (*filter_level)[8][2],\n                                const
      int bx, const int by,\n                                const int iw, const int
      ih,\n                                const enum BlockSize bs,\n                                const
      enum RectTxfmSize ytx,\n                                const enum RectTxfmSize
      uvtx,\n                                const enum Dav1dPixelLayout layout,\n
      \                               uint8_t *const ay, uint8_t *const ly,\n                                uint8_t
      *const auv, uint8_t *const luv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:336,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:337,1
    - Dst: assert
      Src: /src/dav1d/src/lf_mask.c:340,1
    - Dst: mask_edges_inter
      Src: /src/dav1d/src/lf_mask.c:352,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:360,1
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:362,1
    - Dst: assert
      Src: /src/dav1d/src/lf_mask.c:364,1
    - Dst: mask_edges_chroma
      Src: /src/dav1d/src/lf_mask.c:381,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 18
    argNames:
    - lflvl
    - (*const level_cache)
    - b4_stride
    - (*filter_level)
    - bx
    - by
    - iw
    - ih
    - skip
    - bs
    - max_ytx
    - tx_masks
    - uvtx
    - layout
    - ay
    - ly
    - auv
    - luv
    argTypes:
    - Av1Filter*
    - uint8_t[]
    - ptrdiff_t
    - uint8_t[][]
    - int
    - int
    - int
    - int
    - int
    - enum BlockSize
    - enum RectTxfmSize
    - uint16_t*
    - enum RectTxfmSize
    - enum Dav1dPixelLayout
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts:
    - condition: (bw4 >= 0 && bh4 >= 0)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/dav1d/src/lf_mask.c
    - condition: (cbw4 >= 0 && cbh4 >= 0)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/dav1d/src/lf_mask.c
    constantsTouched: []
    func_position:
      end: 383
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 383
    functionName: dav1d_create_lf_mask_inter
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 0
    functionsReached:
    - mask_edges_chroma
    - imin
    - assert
    - mask_edges_inter
    linkageType: ''
    returnType: void
    signature: "void dav1d_create_lf_mask_inter(Av1Filter *const lflvl,\n                                uint8_t
      (*const level_cache)[4],\n                                const ptrdiff_t b4_stride,\n
      \                               const uint8_t (*filter_level)[8][2],\n                                const
      int bx, const int by,\n                                const int iw, const int
      ih,\n                                const int skip, const enum BlockSize bs,\n
      \                               const enum RectTxfmSize max_ytx,\n                                const
      uint16_t *const tx_masks,\n                                const enum RectTxfmSize
      uvtx,\n                                const enum Dav1dPixelLayout layout,\n
      \                               uint8_t *const ay, uint8_t *const ly,\n                                uint8_t
      *const auv, uint8_t *const luv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/lf_mask.c:393,1
    - Dst: imax
      Src: /src/dav1d/src/lf_mask.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - lim_lut
    - filter_sharpness
    argTypes:
    - Av1FilterLUT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 402
    functionName: dav1d_calc_eih
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 0
    functionsReached:
    - imax
    - imin
    linkageType: ''
    returnType: void
    signature: void dav1d_calc_eih(Av1FilterLUT *const lim_lut, const int filter_sharpness)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iclip
      Src: /src/dav1d/src/lf_mask.c:409,1
    - Dst: iclip
      Src: /src/dav1d/src/lf_mask.c:409,1
    - Dst: memset
      Src: /src/dav1d/src/lf_mask.c:412,1
    - Dst: iclip
      Src: /src/dav1d/src/lf_mask.c:416,1
    - Dst: iclip
      Src: /src/dav1d/src/lf_mask.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - (*const lflvl_values)
    - base_lvl
    - lf_delta
    - seg_delta
    - mr_delta
    argTypes:
    - uint8_t[]
    - int
    - int
    - int
    - Dav1dLoopfilterModeRefDeltas*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 425
    functionName: calc_lf_value
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 0
    functionsReached:
    - iclip
    - memset
    linkageType: ''
    returnType: void
    signature: "void calc_lf_value(uint8_t (*const lflvl_values)[2],\n                          const
      int base_lvl, const int lf_delta,\n                          const int seg_delta,\n
      \                         const Dav1dLoopfilterModeRefDeltas *const mr_delta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/dav1d/src/lf_mask.c:433,1
    - Dst: calc_lf_value
      Src: /src/dav1d/src/lf_mask.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - (*const lflvl_values)
    - base_lvl
    - lf_delta
    - seg_delta
    - mr_delta
    argTypes:
    - uint8_t[]
    - int
    - int
    - int
    - Dav1dLoopfilterModeRefDeltas*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 436
    functionName: calc_lf_value_chroma
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 0
    functionsReached:
    - calc_lf_value
    - memset
    linkageType: ''
    returnType: void
    signature: "void calc_lf_value_chroma(uint8_t (*const lflvl_values)[2],\n                                        const
      int base_lvl, const int lf_delta,\n                                        const
      int seg_delta,\n                                        const Dav1dLoopfilterModeRefDeltas
      *const mr_delta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/dav1d/src/lf_mask.c:445,1
    - Dst: calc_lf_value
      Src: /src/dav1d/src/lf_mask.c:456,1
    - Dst: calc_lf_value
      Src: /src/dav1d/src/lf_mask.c:458,1
    - Dst: calc_lf_value_chroma
      Src: /src/dav1d/src/lf_mask.c:461,1
    - Dst: calc_lf_value_chroma
      Src: /src/dav1d/src/lf_mask.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - (*const lflvl_values)
    - hdr
    - lf_delta
    argTypes:
    - uint8_t[][][]
    - Dav1dFrameHeader*
    - int8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 468
    functionName: dav1d_calc_lf_values
    functionSourceFile: /src/dav1d/src/lf_mask.c
    functionUses: 0
    functionsReached:
    - calc_lf_value
    - memset
    - calc_lf_value_chroma
    linkageType: ''
    returnType: void
    signature: "void dav1d_calc_lf_values(uint8_t (*const lflvl_values)[4][8][2],\n
      \                         const Dav1dFrameHeader *const hdr,\n                          const
      int8_t lf_delta[4])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: decl_load_tmvs_fn
    functionSourceFile: /src/dav1d/src/refmvs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_load_tmvs_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: decl_save_tmvs_fn
    functionSourceFile: /src/dav1d/src/refmvs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_save_tmvs_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: decl_splat_mv_fn
    functionSourceFile: /src/dav1d/src/refmvs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_splat_mv_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/refmvs.h:148,1
    - Dst: assert
      Src: /src/dav1d/src/refmvs.h:149,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.h:150,1
    - Dst: imin
      Src: /src/dav1d/src/refmvs.h:151,1
    - Dst: Dav1dRefmvsDSPContext*::save_tmvs
      Src: /src/dav1d/src/refmvs.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - dsp
    - rt
    - col_start8
    - col_end8
    - row_start8
    - row_end8
    argTypes:
    - Dav1dRefmvsDSPContext*
    - refmvs_tile*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (row_start8 >= 0)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/dav1d/src/refmvs.h
    - condition: ((unsigned) (row_end8 - row_start8) <= 16U)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/dav1d/src/refmvs.h
    constantsTouched: []
    func_position:
      end: 159
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 159
    functionName: dav1d_refmvs_save_tmvs
    functionSourceFile: /src/dav1d/src/refmvs.h
    functionUses: 0
    functionsReached:
    - imin
    - assert
    - Dav1dRefmvsDSPContext*::save_tmvs
    linkageType: ''
    returnType: void
    signature: "void dav1d_refmvs_save_tmvs(const Dav1dRefmvsDSPContext *const dsp,\n
      \                                         const refmvs_tile *const rt,\n                                          const
      int col_start8, int col_end8,\n                                          const
      int row_start8, int row_end8)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: dav1d_log
    functionSourceFile: /src/dav1d/src/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_log(...)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - a
    - l
    - yb4
    - xb4
    - have_top
    - have_left
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: get_intra_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_intra_ctx(const BlockContext *const a,\n                                const
      BlockContext *const l,\n                                const int yb4, const
      int xb4,\n                                const int have_top, const int have_left)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a
    - l
    - max_tx
    - yb4
    - xb4
    argTypes:
    - BlockContext*
    - BlockContext*
    - TxfmInfo*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: get_tx_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_tx_ctx(const BlockContext *const a,\n                             const
      BlockContext *const l,\n                             const TxfmInfo *const max_tx,\n
      \                            const int yb4, const int xb4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a
    - l
    - bl
    - yb8
    - xb8
    argTypes:
    - BlockContext*
    - BlockContext*
    - enum BlockLevel
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: get_partition_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_partition_ctx(const BlockContext *const a,\n                                    const
      BlockContext *const l,\n                                    const enum BlockLevel
      bl,\n                                    const int yb8, const int xb8)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - in
    - bl
    argTypes:
    - uint16_t*
    - enum BlockLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: gather_left_partition_prob
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: "unsigned gather_left_partition_prob(const uint16_t *const in,\n                                                  const
      enum BlockLevel bl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - in
    - bl
    argTypes:
    - uint16_t*
    - enum BlockLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: gather_top_partition_prob
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: "unsigned gather_top_partition_prob(const uint16_t *const in,\n                                                 const
      enum BlockLevel bl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - uvt_dim
    - ytxtp
    argTypes:
    - TxfmInfo*
    - enum TxfmType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: get_uv_inter_txtp
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum TxfmType
    signature: "enum TxfmType get_uv_inter_txtp(const TxfmInfo *const uvt_dim,\n                                              const
      enum TxfmType ytxtp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 7
    argNames:
    - a
    - l
    - comp
    - dir
    - ref
    - yb4
    - xb4
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: get_filter_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_filter_ctx(const BlockContext *const a,\n                                 const
      BlockContext *const l,\n                                 const int comp, const
      int dir, const int ref,\n                                 const int yb4, const
      int xb4)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - a
    - l
    - yb4
    - xb4
    - have_top
    - have_left
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 184
    functionName: get_comp_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_comp_ctx(const BlockContext *const a,\n                               const
      BlockContext *const l,\n                               const int yb4, const
      int xb4,\n                               const int have_top, const int have_left)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: has_uni_comp
      Src: /src/dav1d/src/env.h:203,1
    - Dst: has_uni_comp
      Src: /src/dav1d/src/env.h:216,1
    - Dst: has_uni_comp
      Src: /src/dav1d/src/env.h:219,1
    - Dst: has_uni_comp
      Src: /src/dav1d/src/env.h:219,1
    - Dst: has_uni_comp
      Src: /src/dav1d/src/env.h:231,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 6
    argNames:
    - a
    - l
    - yb4
    - xb4
    - have_top
    - have_left
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 235
    functionName: get_comp_dir_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached:
    - has_uni_comp
    linkageType: ''
    returnType: int
    signature: "int get_comp_dir_ctx(const BlockContext *const a,\n                                   const
      BlockContext *const l,\n                                   const int yb4, const
      int xb4,\n                                   const int have_top, const int have_left)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - edge
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: has_uni_comp
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_uni_comp(edge, off)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - order_hint_n_bits
    - poc0
    - poc1
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: get_poc_diff
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_poc_diff(const int order_hint_n_bits,\n                               const
      int poc0, const int poc1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/dav1d/src/env.h:252,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/env.h:252,1
    - Dst: abs
      Src: /src/dav1d/src/env.h:253,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/env.h:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 8
    argNames:
    - order_hint_n_bits
    - poc
    - ref0poc
    - ref1poc
    - a
    - l
    - yb4
    - xb4
    argTypes:
    - int
    - int
    - int
    - int
    - BlockContext*
    - BlockContext*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 261
    functionName: get_jnt_comp_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached:
    - abs
    - get_poc_diff
    linkageType: ''
    returnType: int
    signature: "int get_jnt_comp_ctx(const int order_hint_n_bits, const int poc,\n
      \                                  const int ref0poc, const int ref1poc,\n                                   const
      BlockContext *const a,\n                                   const BlockContext
      *const l,\n                                   const int yb4, const int xb4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/env.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - l
    - yb4
    - xb4
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: get_mask_comp_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached:
    - imin
    linkageType: ''
    returnType: int
    signature: "int get_mask_comp_ctx(const BlockContext *const a,\n                                    const
      BlockContext *const l,\n                                    const int yb4, const
      int xb4)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 6
    argNames:
    - a
    - l
    - yb4
    - xb4
    - have_top
    - have_left
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 301
    functionName: av1_get_ref_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int av1_get_ref_ctx(const BlockContext *const a,\n                                  const
      BlockContext *const l,\n                                  const int yb4, const
      int xb4,\n                                  int have_top, int have_left)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 6
    argNames:
    - a
    - l
    - yb4
    - xb4
    - have_top
    - have_left
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 324
    functionName: av1_get_fwd_ref_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int av1_get_fwd_ref_ctx(const BlockContext *const a,\n                                      const
      BlockContext *const l,\n                                      const int yb4,
      const int xb4,\n                                      const int have_top, const
      int have_left)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 6
    argNames:
    - a
    - l
    - yb4
    - xb4
    - have_top
    - have_left
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 344
    functionName: av1_get_fwd_ref_1_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int av1_get_fwd_ref_1_ctx(const BlockContext *const a,\n                                        const
      BlockContext *const l,\n                                        const int yb4,
      const int xb4,\n                                        const int have_top,
      const int have_left)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 6
    argNames:
    - a
    - l
    - yb4
    - xb4
    - have_top
    - have_left
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 364
    functionName: av1_get_fwd_ref_2_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int av1_get_fwd_ref_2_ctx(const BlockContext *const a,\n                                        const
      BlockContext *const l,\n                                        const int yb4,
      const int xb4,\n                                        const int have_top,
      const int have_left)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 6
    argNames:
    - a
    - l
    - yb4
    - xb4
    - have_top
    - have_left
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 386
    functionName: av1_get_bwd_ref_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int av1_get_bwd_ref_ctx(const BlockContext *const a,\n                                      const
      BlockContext *const l,\n                                      const int yb4,
      const int xb4,\n                                      const int have_top, const
      int have_left)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 6
    argNames:
    - a
    - l
    - yb4
    - xb4
    - have_top
    - have_left
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 406
    functionName: av1_get_bwd_ref_1_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int av1_get_bwd_ref_1_ctx(const BlockContext *const a,\n                                        const
      BlockContext *const l,\n                                        const int yb4,
      const int xb4,\n                                        const int have_top,
      const int have_left)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 6
    argNames:
    - a
    - l
    - yb4
    - xb4
    - have_top
    - have_left
    argTypes:
    - BlockContext*
    - BlockContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 428
    functionName: av1_get_uni_p1_ctx
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int av1_get_uni_p1_ctx(const BlockContext *const a,\n                                     const
      BlockContext *const l,\n                                     const int yb4,
      const int xb4,\n                                     const int have_top, const
      int have_left)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ref_mv_stack
    - ref_idx
    argTypes:
    - refmvs_candidate*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 437
    functionName: get_drl_context
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_drl_context(const refmvs_candidate *const ref_mv_stack,\n
      \                                 const int ref_idx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 7
    argNames:
    - by
    - bx
    - have_top
    - have_left
    - seg_ctx
    - cur_seg_map
    - stride
    argTypes:
    - int
    - int
    - int
    - int
    - int*
    - uint8_t*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 460
    functionName: get_cur_frame_segid
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: "unsigned get_cur_frame_segid(const int by, const int bx,\n                                           const
      int have_top,\n                                           const int have_left,\n
      \                                          int *const seg_ctx,\n                                           const
      uint8_t *cur_seg_map,\n                                           const ptrdiff_t
      stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mv
    argTypes:
    - mv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: fix_int_mv_precision
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fix_int_mv_precision(mv *const mv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fix_int_mv_precision
      Src: /src/dav1d/src/env.h:471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - hdr
    - mv
    argTypes:
    - Dav1dFrameHeader*
    - mv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: fix_mv_precision
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 1
    functionsReached:
    - fix_int_mv_precision
    linkageType: ''
    returnType: void
    signature: "void fix_mv_precision(const Dav1dFrameHeader *const hdr,\n                                    mv
      *const mv)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/env.h:485,1
    - Dst: assert
      Src: /src/dav1d/src/env.h:486,1
    - Dst: apply_sign
      Src: /src/dav1d/src/env.h:499,1
    - Dst: abs
      Src: /src/dav1d/src/env.h:499,1
    - Dst: apply_sign
      Src: /src/dav1d/src/env.h:500,1
    - Dst: abs
      Src: /src/dav1d/src/env.h:500,1
    - Dst: fix_int_mv_precision
      Src: /src/dav1d/src/env.h:503,1
    - Dst: fix_int_mv_precision
      Src: /src/dav1d/src/env.h:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - gmv
    - bx4
    - by4
    - bw4
    - bh4
    - hdr
    argTypes:
    - Dav1dWarpedMotionParams*
    - int
    - int
    - int
    - int
    - Dav1dFrameHeader*
    assertStmts:
    - condition: (gmv->matrix[5] ==  gmv->matrix[2])
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/dav1d/src/env.h
    - condition: (gmv->matrix[4] == -gmv->matrix[3])
      pos:
        line_end: 485
        line_start: 485
        source_file: /src/dav1d/src/env.h
    constantsTouched: []
    func_position:
      end: 518
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 518
    functionName: get_gmv_2d
    functionSourceFile: /src/dav1d/src/env.h
    functionUses: 1
    functionsReached:
    - assert
    - abs
    - fix_int_mv_precision
    - apply_sign
    linkageType: ''
    returnType: mv
    signature: "mv get_gmv_2d(const Dav1dWarpedMotionParams *const gmv,\n                            const
      int bx4, const int by4,\n                            const int bw4, const int
      bh4,\n                            const Dav1dFrameHeader *const hdr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: decl_recon_b_intra_fn
    functionSourceFile: /src/dav1d/src/recon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_recon_b_intra_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: decl_recon_b_inter_fn
    functionSourceFile: /src/dav1d/src/recon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_recon_b_inter_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: decl_filter_sbrow_fn
    functionSourceFile: /src/dav1d/src/recon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_filter_sbrow_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: decl_backup_ipred_edge_fn
    functionSourceFile: /src/dav1d/src/recon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_backup_ipred_edge_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: decl_read_coef_blocks_fn
    functionSourceFile: /src/dav1d/src/recon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_read_coef_blocks_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: decl_copy_pal_block_fn
    functionSourceFile: /src/dav1d/src/recon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_copy_pal_block_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: decl_read_pal_plane_fn
    functionSourceFile: /src/dav1d/src/recon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_read_pal_plane_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: decl_read_pal_uv_fn
    functionSourceFile: /src/dav1d/src/recon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_read_pal_uv_fn(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/fg_apply_tmpl.c:49,1
    - Dst: memset
      Src: /src/dav1d/src/fg_apply_tmpl.c:55,1
    - Dst: memset
      Src: /src/dav1d/src/fg_apply_tmpl.c:60,1
    - Dst: assert
      Src: /src/dav1d/src/fg_apply_tmpl.c:70,1
    - Dst: memset
      Src: /src/dav1d/src/fg_apply_tmpl.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - bitdepth
    - points
    - num
    - scaling
    argTypes:
    - int
    - uint8_t[][]
    - int
    - uint8_t[]
    assertStmts:
    - condition: (bitdepth > 8)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/dav1d/src/fg_apply_tmpl.c
    - condition: (dx > 0)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/dav1d/src/fg_apply_tmpl.c
    constantsTouched: []
    func_position:
      end: 97
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 97
    functionName: generate_scaling
    functionSourceFile: /src/dav1d/src/fg_apply_tmpl.c
    functionUses: 1
    functionsReached:
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: "void generate_scaling(const int bitdepth,\n                             const
      uint8_t points[][2], const int num,\n                             uint8_t scaling[SCALING_SIZE])"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Dav1dFilmGrainDSPContext*::generate_grain_y
      Src: /src/dav1d/src/fg_apply_tmpl.c:112,1
    - Dst: generate_scaling
      Src: /src/dav1d/src/fg_apply_tmpl.c:122,1
    - Dst: generate_scaling
      Src: /src/dav1d/src/fg_apply_tmpl.c:124,1
    - Dst: generate_scaling
      Src: /src/dav1d/src/fg_apply_tmpl.c:126,1
    - Dst: assert
      Src: /src/dav1d/src/fg_apply_tmpl.c:129,1
    - Dst: memcpy
      Src: /src/dav1d/src/fg_apply_tmpl.c:134,1
    - Dst: memcpy
      Src: /src/dav1d/src/fg_apply_tmpl.c:137,1
    - Dst: assert
      Src: /src/dav1d/src/fg_apply_tmpl.c:141,1
    - Dst: memcpy
      Src: /src/dav1d/src/fg_apply_tmpl.c:147,1
    - Dst: memcpy
      Src: /src/dav1d/src/fg_apply_tmpl.c:150,1
    - Dst: memcpy
      Src: /src/dav1d/src/fg_apply_tmpl.c:154,1
    - Dst: memcpy
      Src: /src/dav1d/src/fg_apply_tmpl.c:156,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 5
    argNames:
    - dsp
    - out
    - in
    - scaling
    - grain_lut
    argTypes:
    - Dav1dFilmGrainDSPContext*
    - Dav1dPicture*
    - Dav1dPicture*
    - uint8_t[][]
    - entry[][][]
    assertStmts:
    - condition: (out->stride[0] == in->stride[0])
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/dav1d/src/fg_apply_tmpl.c
    - condition: (out->stride[1] == in->stride[1])
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/dav1d/src/fg_apply_tmpl.c
    constantsTouched: []
    func_position:
      end: 159
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 159
    functionName: bitfn
    functionSourceFile: /src/dav1d/src/fg_apply_tmpl.c
    functionUses: 4
    functionsReached:
    - memcpy
    - Dav1dFilmGrainDSPContext*::generate_grain_y
    - assert
    - generate_scaling
    linkageType: ''
    returnType: void
    signature: "void bitfn(dav1d_prep_grain)(const Dav1dFilmGrainDSPContext *const
      dsp,\n                             Dav1dPicture *const out,\n                             const
      Dav1dPicture *const in,\n                             uint8_t scaling[3][SCALING_SIZE],\n
      \                            entry grain_lut[3][GRAIN_HEIGHT+1][GRAIN_WIDTH])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/fg_apply_tmpl.c:175,1
    - Dst: imin
      Src: /src/dav1d/src/fg_apply_tmpl.c:181,1
    - Dst: Dav1dFilmGrainDSPContext*::fgy_32x32xn
      Src: /src/dav1d/src/fg_apply_tmpl.c:182,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/fg_apply_tmpl.c:182,1
    - Dst: imin
      Src: /src/dav1d/src/fg_apply_tmpl.c:193,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/fg_apply_tmpl.c:200,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/fg_apply_tmpl.c:204,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 6
    argNames:
    - dsp
    - out
    - in
    - scaling
    - grain_lut
    - row
    argTypes:
    - Dav1dFilmGrainDSPContext*
    - Dav1dPicture*
    - Dav1dPicture*
    - uint8_t[][]
    - entry[][][]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 223
    functionName: bitfn
    functionSourceFile: /src/dav1d/src/fg_apply_tmpl.c
    functionUses: 4
    functionsReached:
    - PXSTRIDE
    - imin
    - Dav1dFilmGrainDSPContext*::fgy_32x32xn
    linkageType: ''
    returnType: void
    signature: "void bitfn(dav1d_apply_grain_row)(const Dav1dFilmGrainDSPContext *const
      dsp,\n                                  Dav1dPicture *const out,\n                                  const
      Dav1dPicture *const in,\n                                  const uint8_t scaling[3][SCALING_SIZE],\n
      \                                 const entry grain_lut[3][GRAIN_HEIGHT+1][GRAIN_WIDTH],\n
      \                                 const int row)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/src/fg_apply_tmpl.c:229,1
    - Dst: bitfn
      Src: /src/dav1d/src/fg_apply_tmpl.c:237,1
    - Dst: bitfn
      Src: /src/dav1d/src/fg_apply_tmpl.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dsp
    - out
    - in
    argTypes:
    - Dav1dFilmGrainDSPContext*
    - Dav1dPicture*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 240
    functionName: bitfn
    functionSourceFile: /src/dav1d/src/fg_apply_tmpl.c
    functionUses: 5
    functionsReached:
    - bitfn
    - ALIGN_STK_16
    linkageType: ''
    returnType: void
    signature: "void bitfn(dav1d_apply_grain)(const Dav1dFilmGrainDSPContext *const
      dsp,\n                              Dav1dPicture *const out,\n                              const
      Dav1dPicture *const in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: (union, 64)
    functionSourceFile: /src/dav1d/src/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALIGN
    signature: ALIGN (union, 64)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 448
    functionName: (union, 64)
    functionSourceFile: /src/dav1d/src/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALIGN
    signature: ALIGN (union, 64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __has_feature
      Src: /src/dav1d/src/cpu.c:64,1
    - Dst: dav1d_get_cpu_flags_arm
      Src: /src/dav1d/src/cpu.c:67,1
    - Dst: dav1d_get_cpu_flags_loongarch
      Src: /src/dav1d/src/cpu.c:69,1
    - Dst: dav1d_get_cpu_flags_ppc
      Src: /src/dav1d/src/cpu.c:71,1
    - Dst: dav1d_get_cpu_flags_riscv
      Src: /src/dav1d/src/cpu.c:73,1
    - Dst: dav1d_get_cpu_flags_x86
      Src: /src/dav1d/src/cpu.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: dav1d_init_cpu
    functionSourceFile: /src/dav1d/src/cpu.c
    functionUses: 1
    functionsReached:
    - __has_feature
    - dav1d_get_cpu_flags_loongarch
    - dav1d_get_cpu_flags_ppc
    - dav1d_get_cpu_flags_riscv
    - dav1d_get_cpu_flags_x86
    - dav1d_get_cpu_flags_arm
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_init_cpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: dav1d_set_cpu_flags_mask
    functionSourceFile: /src/dav1d/src/cpu.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_set_cpu_flags_mask(const unsigned mask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WINAPI_FAMILY_PARTITION
      Src: /src/dav1d/src/cpu.c:86,1
    - Dst: GetThreadGroupAffinity
      Src: /src/dav1d/src/cpu.c:88,1
    - Dst: GetCurrentThread
      Src: /src/dav1d/src/cpu.c:88,1
    - Dst: GetNativeSystemInfo
      Src: /src/dav1d/src/cpu.c:96,1
    - Dst: pthread_getaffinity_np
      Src: /src/dav1d/src/cpu.c:101,1
    - Dst: pthread_self
      Src: /src/dav1d/src/cpu.c:101,1
    - Dst: CPU_COUNT
      Src: /src/dav1d/src/cpu.c:102,1
    - Dst: sysctlbyname
      Src: /src/dav1d/src/cpu.c:106,1
    - Dst: sysconf
      Src: /src/dav1d/src/cpu.c:109,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/cpu.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 114
    functionName: dav1d_num_logical_processors
    functionSourceFile: /src/dav1d/src/cpu.c
    functionUses: 0
    functionsReached:
    - sysconf
    - GetThreadGroupAffinity
    - GetCurrentThread
    - GetNativeSystemInfo
    - CPU_COUNT
    - sysctlbyname
    - WINAPI_FAMILY_PARTITION
    - dav1d_log
    - pthread_getaffinity_np
    - pthread_self
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_num_logical_processors(Dav1dContext *const c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getauxval
      Src: /src/dav1d/src/cpu.c:118,1
    - Dst: elf_aux_info
      Src: /src/dav1d/src/cpu.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: dav1d_getauxval
    functionSourceFile: /src/dav1d/src/cpu.c
    functionUses: 0
    functionsReached:
    - getauxval
    - elf_aux_info
    linkageType: ''
    returnType: COLD unsigned long
    signature: COLD unsigned long dav1d_getauxval(unsigned long type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/getbits.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - GetBits*
    assertStmts:
    - condition: (c->bits_left <= 7)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/dav1d/src/getbits.h
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: dav1d_bytealign_get_bits
    functionSourceFile: /src/dav1d/src/getbits.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void dav1d_bytealign_get_bits(GetBits *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - GetBits*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: dav1d_get_bits_pos
    functionSourceFile: /src/dav1d/src/getbits.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned dav1d_get_bits_pos(const GetBits *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_mem_pool_pop
      Src: /src/dav1d/src/picture.c:70,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/picture.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p
    - cookie
    argTypes:
    - Dav1dPicture*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 78
    functionName: dav1d_default_picture_alloc
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - DAV1D_ERR
    - dav1d_mem_pool_pop
    linkageType: ''
    returnType: int
    signature: int dav1d_default_picture_alloc(Dav1dPicture *const p, void *const
      cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_mem_pool_push
      Src: /src/dav1d/src/picture.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - cookie
    argTypes:
    - Dav1dPicture*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: dav1d_default_picture_release
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - dav1d_mem_pool_push
    linkageType: ''
    returnType: void
    signature: void dav1d_default_picture_release(Dav1dPicture *const p, void *const
      cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct pic_ctx_context*::allocator::release_picture_callback
      Src: /src/dav1d/src/picture.c:94,1
    - Dst: dav1d_mem_pool_push
      Src: /src/dav1d/src/picture.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - uint8_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: free_buffer
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - struct pic_ctx_context*::allocator::release_picture_callback
    - dav1d_mem_pool_push
    linkageType: ''
    returnType: void
    signature: void free_buffer(const uint8_t *const data, void *const user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_free
      Src: /src/dav1d/src/picture.c:103,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/picture.c:104,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/picture.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - user_data
    argTypes:
    - uint8_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: dav1d_picture_free_itut_t35
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - dav1d_free
    linkageType: ''
    returnType: void
    signature: void dav1d_picture_free_itut_t35(const uint8_t *const data, void *const
      user_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_log
      Src: /src/dav1d/src/picture.c:119,1
    - Dst: assert
      Src: /src/dav1d/src/picture.c:122,1
    - Dst: dav1d_mem_pool_pop
      Src: /src/dav1d/src/picture.c:125,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/picture.c:128,1
    - Dst: dav1d_data_props_set_defaults
      Src: /src/dav1d/src/picture.c:136,1
    - Dst: Dav1dPicAllocator*::alloc_picture_callback
      Src: /src/dav1d/src/picture.c:137,1
    - Dst: dav1d_mem_pool_push
      Src: /src/dav1d/src/picture.c:139,1
    - Dst: dav1d_ref_init
      Src: /src/dav1d/src/picture.c:145,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:148,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 12
    argNames:
    - c
    - p
    - w
    - h
    - seq_hdr
    - seq_hdr_ref
    - frame_hdr
    - frame_hdr_ref
    - bpc
    - props
    - p_allocator
    - extra_ptr
    argTypes:
    - Dav1dContext*
    - Dav1dPicture*
    - int
    - int
    - Dav1dSequenceHeader*
    - Dav1dRef*
    - Dav1dFrameHeader*
    - Dav1dRef*
    - int
    - Dav1dDataProps*
    - Dav1dPicAllocator*
    - void**
    assertStmts:
    - condition: (bpc > 0 && bpc <= 16)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/dav1d/src/picture.c
    constantsTouched: []
    func_position:
      end: 157
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 157
    functionName: picture_alloc
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - Dav1dPicAllocator*::alloc_picture_callback
    - dav1d_ref_init
    - assert
    - dav1d_mem_pool_pop
    - dav1d_log
    - dav1d_mem_pool_push
    - DAV1D_ERR
    - dav1d_data_props_set_defaults
    - dav1d_ref_inc
    linkageType: ''
    returnType: int
    signature: "int picture_alloc(Dav1dContext *const c,\n                         Dav1dPicture
      *const p,\n                         const int w, const int h,\n                         Dav1dSequenceHeader
      *const seq_hdr, Dav1dRef *const seq_hdr_ref,\n                         Dav1dFrameHeader
      *const frame_hdr, Dav1dRef *const frame_hdr_ref,\n                         const
      int bpc,\n                         const Dav1dDataProps *const props,\n                         Dav1dPicAllocator
      *const p_allocator,\n                         void **const extra_ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_data_props_copy
      Src: /src/dav1d/src/picture.c:165,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:167,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:170,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:172,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:175,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:177,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 9
    argNames:
    - p
    - content_light
    - content_light_ref
    - mastering_display
    - mastering_display_ref
    - itut_t35
    - itut_t35_ref
    - n_itut_t35
    - props
    argTypes:
    - Dav1dPicture*
    - Dav1dContentLightLevel*
    - Dav1dRef*
    - Dav1dMasteringDisplay*
    - Dav1dRef*
    - Dav1dITUTT35*
    - Dav1dRef*
    - size_t
    - Dav1dDataProps*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 182
    functionName: dav1d_picture_copy_props
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - dav1d_ref_inc
    - dav1d_data_props_copy
    - dav1d_ref_dec
    linkageType: ''
    returnType: void
    signature: "void dav1d_picture_copy_props(Dav1dPicture *const p,\n                              Dav1dContentLightLevel
      *const content_light, Dav1dRef *const content_light_ref,\n                              Dav1dMasteringDisplay
      *const mastering_display, Dav1dRef *const mastering_display_ref,\n                              Dav1dITUTT35
      *const itut_t35, Dav1dRef *itut_t35_ref, size_t n_itut_t35,\n                              const
      Dav1dDataProps *const props)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: picture_alloc
      Src: /src/dav1d/src/picture.c:189,1
    - Dst: dav1d_picture_copy_props
      Src: /src/dav1d/src/picture.c:209,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:215,1
    - Dst: dav1d_data_props_copy
      Src: /src/dav1d/src/picture.c:219,1
    - Dst: atomic_init
      Src: /src/dav1d/src/picture.c:223,1
    - Dst: atomic_init
      Src: /src/dav1d/src/picture.c:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - c
    - f
    - bpc
    argTypes:
    - Dav1dContext*
    - Dav1dFrameContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 227
    functionName: dav1d_thread_picture_alloc
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - atomic_init
    - dav1d_ref_dec
    - dav1d_data_props_copy
    - picture_alloc
    - dav1d_picture_copy_props
    linkageType: ''
    returnType: int
    signature: "int dav1d_thread_picture_alloc(Dav1dContext *const c, Dav1dFrameContext
      *const f,\n                               const int bpc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: picture_alloc
      Src: /src/dav1d/src/picture.c:233,1
    - Dst: dav1d_picture_copy_props
      Src: /src/dav1d/src/picture.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - c
    - dst
    - w
    - src
    argTypes:
    - Dav1dContext*
    - Dav1dPicture*
    - int
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 246
    functionName: dav1d_picture_alloc_copy
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - dav1d_picture_copy_props
    - picture_alloc
    linkageType: ''
    returnType: int
    signature: "int dav1d_picture_alloc_copy(Dav1dContext *const c, Dav1dPicture *const
      dst, const int w,\n                             const Dav1dPicture *const src)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/picture.c:249,1
    - Dst: assert
      Src: /src/dav1d/src/picture.c:250,1
    - Dst: assert
      Src: /src/dav1d/src/picture.c:251,1
    - Dst: assert
      Src: /src/dav1d/src/picture.c:254,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:255,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:257,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:258,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:259,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:260,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:261,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/picture.c:262,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - Dav1dPicture*
    - Dav1dPicture*
    assertStmts:
    - condition: (dst != NULL)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/dav1d/src/picture.c
    - condition: (dst->data[0] == NULL)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/dav1d/src/picture.c
    - condition: (src != NULL)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/dav1d/src/picture.c
    - condition: (src->data[0] != NULL)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/dav1d/src/picture.c
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: dav1d_picture_ref
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - assert
    - dav1d_ref_inc
    linkageType: ''
    returnType: void
    signature: void dav1d_picture_ref(Dav1dPicture *const dst, const Dav1dPicture
      *const src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/picture.c:267,1
    - Dst: assert
      Src: /src/dav1d/src/picture.c:268,1
    - Dst: assert
      Src: /src/dav1d/src/picture.c:269,1
    - Dst: assert
      Src: /src/dav1d/src/picture.c:272,1
    - Dst: memset
      Src: /src/dav1d/src/picture.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - Dav1dPicture*
    - Dav1dPicture*
    assertStmts:
    - condition: (dst != NULL)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/dav1d/src/picture.c
    - condition: (src->data[0] != NULL)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/dav1d/src/picture.c
    - condition: (src != NULL)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/dav1d/src/picture.c
    - condition: (dst->data[0] == NULL)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/dav1d/src/picture.c
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: dav1d_picture_move_ref
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: void dav1d_picture_move_ref(Dav1dPicture *const dst, Dav1dPicture *const
      src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_picture_ref
      Src: /src/dav1d/src/picture.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - Dav1dThreadPicture*
    - Dav1dThreadPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: dav1d_thread_picture_ref
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - dav1d_picture_ref
    linkageType: ''
    returnType: void
    signature: "void dav1d_thread_picture_ref(Dav1dThreadPicture *const dst,\n                              const
      Dav1dThreadPicture *const src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_picture_move_ref
      Src: /src/dav1d/src/picture.c:291,1
    - Dst: memset
      Src: /src/dav1d/src/picture.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - Dav1dThreadPicture*
    - Dav1dThreadPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 297
    functionName: dav1d_thread_picture_move_ref
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - dav1d_picture_move_ref
    - memset
    linkageType: ''
    returnType: void
    signature: "void dav1d_thread_picture_move_ref(Dav1dThreadPicture *const dst,\n
      \                                  Dav1dThreadPicture *const src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_input
      Src: /src/dav1d/src/picture.c:300,1
    - Dst: validate_input
      Src: /src/dav1d/src/picture.c:303,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:304,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:306,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:307,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:308,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:309,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:310,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/picture.c:311,1
    - Dst: memset
      Src: /src/dav1d/src/picture.c:312,1
    - Dst: dav1d_data_props_set_defaults
      Src: /src/dav1d/src/picture.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 314
    functionName: dav1d_picture_unref_internal
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - memset
    - validate_input
    - dav1d_data_props_set_defaults
    - dav1d_ref_dec
    linkageType: ''
    returnType: void
    signature: void dav1d_picture_unref_internal(Dav1dPicture *const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_picture_unref_internal
      Src: /src/dav1d/src/picture.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Dav1dThreadPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: dav1d_thread_picture_unref
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached:
    - dav1d_picture_unref_internal
    linkageType: ''
    returnType: void
    signature: void dav1d_thread_picture_unref(Dav1dThreadPicture *const p)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Dav1dThreadPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: dav1d_picture_get_event_flags
    functionSourceFile: /src/dav1d/src/picture.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum Dav1dEventFlags
    signature: enum Dav1dEventFlags dav1d_picture_get_event_flags(const Dav1dThreadPicture
      *const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: decl_mc_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_mc_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: decl_mc_scaled_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_mc_scaled_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: decl_warp8x8_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_warp8x8_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: decl_mct_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_mct_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: decl_mct_scaled_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_mct_scaled_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: decl_warp8x8t_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_warp8x8t_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: decl_avg_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_avg_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: decl_w_avg_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_w_avg_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: decl_mask_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_mask_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: decl_w_mask_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_w_mask_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: decl_blend_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_blend_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: decl_blend_dir_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_blend_dir_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: decl_emu_edge_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_emu_edge_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: decl_resize_fn
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_resize_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - decl_name
    - ','
    - fn_name
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: decl_8tap_gen
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_8tap_gen(decl_name, fn_name, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: decl_8tap_fns
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_8tap_fns(opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: init_8tap_gen
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_8tap_gen(name, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: init_8tap_fns
    functionSourceFile: /src/dav1d/src/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_8tap_fns(opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/dav1d/src/cdef_tmpl.c:40,1
    - Dst: apply_sign
      Src: /src/dav1d/src/cdef_tmpl.c:41,1
    - Dst: imin
      Src: /src/dav1d/src/cdef_tmpl.c:41,1
    - Dst: imax
      Src: /src/dav1d/src/cdef_tmpl.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - diff
    - threshold
    - shift
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: constrain
    functionSourceFile: /src/dav1d/src/cdef_tmpl.c
    functionUses: 0
    functionsReached:
    - imax
    - imin
    - apply_sign
    - abs
    linkageType: ''
    returnType: int
    signature: "int constrain(const int diff, const int threshold,\n                            const
      int shift)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - tmp
    - stride
    - w
    - h
    argTypes:
    - int16_t*
    - ptrdiff_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: fill
    functionSourceFile: /src/dav1d/src/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fill(int16_t *tmp, const ptrdiff_t stride,\n                        const
      int w, const int h)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fill
      Src: /src/dav1d/src/cdef_tmpl.c:65,1
    - Dst: fill
      Src: /src/dav1d/src/cdef_tmpl.c:69,1
    - Dst: fill
      Src: /src/dav1d/src/cdef_tmpl.c:73,1
    - Dst: fill
      Src: /src/dav1d/src/cdef_tmpl.c:77,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_tmpl.c:84,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_tmpl.c:92,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_tmpl.c:98,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 10
    argNames:
    - tmp
    - tmp_stride
    - src
    - src_stride
    - (*left)
    - top
    - bottom
    - w
    - h
    - edges
    argTypes:
    - int16_t*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    - pixel[]
    - pixel*
    - pixel*
    - int
    - int
    - enum CdefEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 102
    functionName: padding
    functionSourceFile: /src/dav1d/src/cdef_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - fill
    linkageType: ''
    returnType: void
    signature: "void padding(int16_t *tmp, const ptrdiff_t tmp_stride,\n                    const
      pixel *src, const ptrdiff_t src_stride,\n                    const pixel (*left)[2],\n
      \                   const pixel *top, const pixel *bottom,\n                    const
      int w, const int h, const enum CdefEdgeFlags edges)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/cdef_tmpl.c:113,1
    - Dst: padding
      Src: /src/dav1d/src/cdef_tmpl.c:117,1
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/cdef_tmpl.c:120,1
    - Dst: imax
      Src: /src/dav1d/src/cdef_tmpl.c:122,1
    - Dst: ulog2
      Src: /src/dav1d/src/cdef_tmpl.c:122,1
    - Dst: ulog2
      Src: /src/dav1d/src/cdef_tmpl.c:124,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:135,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:136,1
    - Dst: umin
      Src: /src/dav1d/src/cdef_tmpl.c:139,1
    - Dst: imax
      Src: /src/dav1d/src/cdef_tmpl.c:140,1
    - Dst: umin
      Src: /src/dav1d/src/cdef_tmpl.c:141,1
    - Dst: imax
      Src: /src/dav1d/src/cdef_tmpl.c:142,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:151,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:152,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:153,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:154,1
    - Dst: umin
      Src: /src/dav1d/src/cdef_tmpl.c:155,1
    - Dst: imax
      Src: /src/dav1d/src/cdef_tmpl.c:156,1
    - Dst: umin
      Src: /src/dav1d/src/cdef_tmpl.c:157,1
    - Dst: imax
      Src: /src/dav1d/src/cdef_tmpl.c:158,1
    - Dst: umin
      Src: /src/dav1d/src/cdef_tmpl.c:159,1
    - Dst: imax
      Src: /src/dav1d/src/cdef_tmpl.c:160,1
    - Dst: umin
      Src: /src/dav1d/src/cdef_tmpl.c:161,1
    - Dst: imax
      Src: /src/dav1d/src/cdef_tmpl.c:162,1
    - Dst: iclip
      Src: /src/dav1d/src/cdef_tmpl.c:164,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_tmpl.c:166,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:179,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:180,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_tmpl.c:185,1
    - Dst: assert
      Src: /src/dav1d/src/cdef_tmpl.c:190,1
    - Dst: ulog2
      Src: /src/dav1d/src/cdef_tmpl.c:191,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:204,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:205,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:206,1
    - Dst: constrain
      Src: /src/dav1d/src/cdef_tmpl.c:207,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_tmpl.c:211,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 12
    argNames:
    - dst
    - dst_stride
    - (*left)
    - top
    - bottom
    - pri_strength
    - sec_strength
    - dir
    - damping
    - w
    - h
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel[]
    - pixel*
    - pixel*
    - int
    - int
    - int
    - int
    - int
    - int
    - enum CdefEdgeFlags
    assertStmts:
    - condition: (sec_strength)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/dav1d/src/cdef_tmpl.c
    - condition: ((w == 4 || w == 8) && (h == 4 || h == 8))
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/dav1d/src/cdef_tmpl.c
    constantsTouched: []
    func_position:
      end: 215
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 215
    functionName: cdef_filter_block_c
    functionSourceFile: /src/dav1d/src/cdef_tmpl.c
    functionUses: 0
    functionsReached:
    - ulog2
    - PXSTRIDE
    - assert
    - umin
    - imax
    - constrain
    - padding
    - iclip
    - bitdepth_from_max
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE cdef_filter_block_c(pixel *dst, const ptrdiff_t dst_stride,\n
      \                   const pixel (*left)[2],\n                    const pixel
      *const top, const pixel *const bottom,\n                    const int pri_strength,
      const int sec_strength,\n                    const int dir, const int damping,
      const int w, int h,\n                    const enum CdefEdgeFlags edges HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - w
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: cdef_fn
    functionSourceFile: /src/dav1d/src/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cdef_fn(w, h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/cdef_tmpl.c:241,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/cdef_tmpl.c:259,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 3
    argNames:
    - img
    - stride
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 304
    functionName: cdef_find_dir_c
    functionSourceFile: /src/dav1d/src/cdef_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - bitdepth_from_max
    linkageType: ''
    returnType: int
    signature: "int cdef_find_dir_c(const pixel *img, const ptrdiff_t stride,\n                           unsigned
      *const var HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cdef_dsp_init_arm
      Src: /src/dav1d/src/cdef_tmpl.c:328,1
    - Dst: cdef_dsp_init_ppc
      Src: /src/dav1d/src/cdef_tmpl.c:330,1
    - Dst: cdef_dsp_init_riscv
      Src: /src/dav1d/src/cdef_tmpl.c:332,1
    - Dst: cdef_dsp_init_x86
      Src: /src/dav1d/src/cdef_tmpl.c:334,1
    - Dst: cdef_dsp_init_loongarch
      Src: /src/dav1d/src/cdef_tmpl.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dCdefDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 339
    functionName: bitfn
    functionSourceFile: /src/dav1d/src/cdef_tmpl.c
    functionUses: 5
    functionsReached:
    - cdef_dsp_init_arm
    - cdef_dsp_init_x86
    - cdef_dsp_init_riscv
    - cdef_dsp_init_loongarch
    - cdef_dsp_init_ppc
    linkageType: ''
    returnType: COLD
    signature: COLD bitfn(dav1d_cdef_dsp_init)(Dav1dCdefDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iclip_u8
      Src: /src/dav1d/src/decode.c:60,1
    - Dst: iclip_u8
      Src: /src/dav1d/src/decode.c:61,1
    - Dst: iclip_u8
      Src: /src/dav1d/src/decode.c:62,1
    - Dst: iclip_u8
      Src: /src/dav1d/src/decode.c:63,1
    - Dst: iclip_u8
      Src: /src/dav1d/src/decode.c:64,1
    - Dst: iclip_u8
      Src: /src/dav1d/src/decode.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - seq_hdr
    - frame_hdr
    - qidx
    - (*dq)
    argTypes:
    - Dav1dSequenceHeader*
    - Dav1dFrameHeader*
    - int
    - uint16_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: init_quant_tables
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - iclip_u8
    linkageType: ''
    returnType: void
    signature: "void init_quant_tables(const Dav1dSequenceHeader *const seq_hdr,\n
      \                             const Dav1dFrameHeader *const frame_hdr,\n                              const
      int qidx, uint16_t (*dq)[3][2])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:80,1
    - Dst: dav1d_msac_decode_symbol_adapt16
      Src: /src/dav1d/src/decode.c:81,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:85,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:87,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:89,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:94,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:96,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - msac
    - mv_comp
    - mv_prec
    argTypes:
    - MsacContext*
    - CdfMvComponent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: read_mv_component_diff
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - dav1d_msac_decode_symbol_adapt4
    - dav1d_msac_decode_symbol_adapt16
    - dav1d_msac_decode_bool_adapt
    linkageType: ''
    returnType: int
    signature: "int read_mv_component_diff(MsacContext *const msac,\n                                  CdfMvComponent
      *const mv_comp,\n                                  const int mv_prec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:112,1
    - Dst: read_mv_component_diff
      Src: /src/dav1d/src/decode.c:114,1
    - Dst: read_mv_component_diff
      Src: /src/dav1d/src/decode.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ts
    - ref_mv
    - mv_prec
    argTypes:
    - Dav1dTileState*
    - mv*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: read_mv_residual
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - dav1d_msac_decode_symbol_adapt4
    - read_mv_component_diff
    linkageType: ''
    returnType: void
    signature: "void read_mv_residual(Dav1dTileState *const ts, mv *const ref_mv,\n
      \                            const int mv_prec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:135,1
    - Dst: read_tx_tree
      Src: /src/dav1d/src/decode.c:148,1
    - Dst: read_tx_tree
      Src: /src/dav1d/src/decode.c:151,1
    - Dst: read_tx_tree
      Src: /src/dav1d/src/decode.c:155,1
    - Dst: read_tx_tree
      Src: /src/dav1d/src/decode.c:158,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - t
    - from
    - depth
    - masks
    - x_off
    - y_off
    argTypes:
    - Dav1dTaskContext*
    - enum RectTxfmSize
    - int
    - uint16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 167
    functionName: read_tx_tree
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 1
    functionsReached:
    - read_tx_tree
    - dav1d_msac_decode_bool_adapt
    linkageType: ''
    returnType: void
    signature: "void read_tx_tree(Dav1dTaskContext *const t,\n                         const
      enum RectTxfmSize from,\n                         const int depth, uint16_t
      *const masks,\n                         const int x_off, const int y_off)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - diff
    - ref
    - max
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 189
    functionName: neg_deinterleave
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int neg_deinterleave(int diff, int ref, int max)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/dav1d/src/decode.c:201,1
    - Dst: matches
      Src: /src/dav1d/src/decode.c:210,1
    - Dst: bs
      Src: /src/dav1d/src/decode.c:214,1
    - Dst: matches
      Src: /src/dav1d/src/decode.c:223,1
    - Dst: bs
      Src: /src/dav1d/src/decode.c:227,1
    - Dst: matches
      Src: /src/dav1d/src/decode.c:234,1
    - Dst: bs
      Src: /src/dav1d/src/decode.c:238,1
    - Dst: matches
      Src: /src/dav1d/src/decode.c:245,1
    - Dst: bs
      Src: /src/dav1d/src/decode.c:249,1
    - Dst: matches
      Src: /src/dav1d/src/decode.c:254,1
    - Dst: matches
      Src: /src/dav1d/src/decode.c:258,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 54
    argCount: 10
    argNames:
    - t
    - intra_edge_flags
    - bw4
    - bh4
    - w4
    - h4
    - have_left
    - have_top
    - ref
    - masks
    argTypes:
    - Dav1dTaskContext*
    - enum EdgeFlags
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 262
    functionName: find_matching_ref
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - bs
    - imax
    - matches
    linkageType: ''
    returnType: void
    signature: "void find_matching_ref(const Dav1dTaskContext *const t,\n                              const
      enum EdgeFlags intra_edge_flags,\n                              const int bw4,
      const int bh4,\n                              const int w4, const int h4,\n
      \                             const int have_left, const int have_top,\n                              const
      int ref, uint64_t masks[2])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: bs
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bs(rp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: matches
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: matches(rp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bs
      Src: /src/dav1d/src/decode.c:282,1
    - Dst: add_sample
      Src: /src/dav1d/src/decode.c:283,1
    - Dst: ctz
      Src: /src/dav1d/src/decode.c:285,1
    - Dst: add_sample
      Src: /src/dav1d/src/decode.c:288,1
    - Dst: bs
      Src: /src/dav1d/src/decode.c:292,1
    - Dst: add_sample
      Src: /src/dav1d/src/decode.c:293,1
    - Dst: ctz
      Src: /src/dav1d/src/decode.c:295,1
    - Dst: add_sample
      Src: /src/dav1d/src/decode.c:298,1
    - Dst: add_sample
      Src: /src/dav1d/src/decode.c:302,1
    - Dst: add_sample
      Src: /src/dav1d/src/decode.c:304,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:305,1
    - Dst: iclip
      Src: /src/dav1d/src/decode.c:310,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:310,1
    - Dst: abs
      Src: /src/dav1d/src/decode.c:312,1
    - Dst: abs
      Src: /src/dav1d/src/decode.c:313,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:324,1
    - Dst: memcpy
      Src: /src/dav1d/src/decode.c:328,1
    - Dst: dav1d_find_affine_int
      Src: /src/dav1d/src/decode.c:331,1
    - Dst: dav1d_get_shear_params
      Src: /src/dav1d/src/decode.c:332,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 6
    argNames:
    - t
    - bw4
    - bh4
    - masks
    - mv
    - wmp
    argTypes:
    - Dav1dTaskContext*
    - int
    - int
    - uint64_t[]
    - union mv
    - Dav1dWarpedMotionParams*
    assertStmts:
    - condition: (np > 0 && np <= 8)
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/dav1d/src/decode.c
    - condition: (i != j)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 337
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 337
    functionName: derive_warpmv
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - memcpy
    - dav1d_find_affine_int
    - dav1d_get_shear_params
    - assert
    - abs
    - bs
    - ctz
    - imax
    - add_sample
    - iclip
    linkageType: ''
    returnType: void
    signature: "void derive_warpmv(const Dav1dTaskContext *const t,\n                          const
      int bw4, const int bh4,\n                          const uint64_t masks[2],
      const union mv mv,\n                          Dav1dWarpedMotionParams *const
      wmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - dx
    - ','
    - dy
    - ','
    - sx
    - ','
    - sy
    - ','
    - rp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: add_sample
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_sample(dx, dy, sx, sy, rp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: findoddzero
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int findoddzero(const uint8_t *buf, int len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:359,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:364,1
    - Dst: add
      Src: /src/dav1d/src/decode.c:377,1
    - Dst: add
      Src: /src/dav1d/src/decode.c:380,1
    - Dst: add
      Src: /src/dav1d/src/decode.c:390,1
    - Dst: add
      Src: /src/dav1d/src/decode.c:393,1
    - Dst: add
      Src: /src/dav1d/src/decode.c:394,1
    - Dst: add
      Src: /src/dav1d/src/decode.c:397,1
    - Dst: add
      Src: /src/dav1d/src/decode.c:398,1
    - Dst: add
      Src: /src/dav1d/src/decode.c:401,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:401,1
    - Dst: add
      Src: /src/dav1d/src/decode.c:402,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:402,1
    - Dst: add
      Src: /src/dav1d/src/decode.c:403,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:409,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 7
    argNames:
    - pal_idx
    - stride
    - i
    - first
    - last
    - (*const order)
    - ctx
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - int
    - int
    - int
    - uint8_t[]
    - uint8_t*
    assertStmts:
    - condition: (pal_idx)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/dav1d/src/decode.c
    - condition: (have_left || have_top)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/dav1d/src/decode.c
    - condition: (o_idx == 8)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 412
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 412
    functionName: order_palette
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - imax
    - imin
    - assert
    - add
    linkageType: ''
    returnType: void
    signature: "void order_palette(const uint8_t *pal_idx, const ptrdiff_t stride,\n
      \                         const int i, const int first, const int last,\n                          uint8_t
      (*const order)[8], uint8_t *const ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v_in
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 372
    functionName: add
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add(v_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:422,1
    - Dst: dav1d_msac_decode_uniform
      Src: /src/dav1d/src/decode.c:424,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:431,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:432,1
    - Dst: order_palette
      Src: /src/dav1d/src/decode.c:433,1
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/decode.c:435,1
    - Dst: Dav1dTaskContext*::c::pal_dsp::pal_idx_finish
      Src: /src/dav1d/src/decode.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - t
    - pal_idx
    - pal_sz
    - pl
    - w4
    - h4
    - bw4
    - bh4
    argTypes:
    - Dav1dTaskContext*
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (pal_idx)
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 443
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 443
    functionName: read_pal_indices
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - imin
    - dav1d_msac_decode_symbol_adapt8
    - assert
    - dav1d_msac_decode_uniform
    - imax
    - Dav1dTaskContext*::c::pal_dsp::pal_idx_finish
    - order_palette
    linkageType: ''
    returnType: void
    signature: "void read_pal_indices(Dav1dTaskContext *const t,\n                             uint8_t
      *const pal_idx,\n                             const int pal_sz, const int pl,\n
      \                            const int w4, const int h4,\n                             const
      int bw4, const int bh4)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:471,1
    - Dst: read_tx_tree
      Src: /src/dav1d/src/decode.c:476,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:485,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:489,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - t
    - b
    - bs
    - bx4
    - by4
    argTypes:
    - Dav1dTaskContext*
    - Av1Block*
    - enum BlockSize
    - int
    - int
    assertStmts:
    - condition: (bw4 <= 16 || bh4 <= 16 || b->max_ytx == TX_64X64)
      pos:
        line_end: 470
        line_start: 470
        source_file: /src/dav1d/src/decode.c
    - condition: (!(tx_split[0] & ~0x33))
      pos:
        line_end: 488
        line_start: 488
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 492
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 492
    functionName: read_vartx_tree
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - printf
    - read_tx_tree
    - assert
    linkageType: ''
    returnType: void
    signature: "void read_vartx_tree(Dav1dTaskContext *const t,\n                            Av1Block
      *const b, const enum BlockSize bs,\n                            const int bx4,
      const int by4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:500,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:506,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - f
    - by
    - bx
    - w4
    - h4
    - ref_seg_map
    - stride
    argTypes:
    - Dav1dFrameContext*
    - int
    - int
    - int
    - int
    - uint8_t*
    - ptrdiff_t
    assertStmts:
    - condition: (f->frame_hdr->primary_ref_frame != DAV1D_PRIMARY_REF_NONE)
      pos:
        line_end: 499
        line_start: 499
        source_file: /src/dav1d/src/decode.c
    - condition: (seg_id < 8)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 512
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 512
    functionName: get_prev_frame_segid
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - imin
    - assert
    linkageType: ''
    returnType: unsigned
    signature: "unsigned get_prev_frame_segid(const Dav1dFrameContext *const f,\n
      \                                           const int by, const int bx,\n                                            const
      int w4, int h4,\n                                            const uint8_t *ref_seg_map,\n
      \                                           const ptrdiff_t stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/decode.c:525,1
    - Dst: Dav1dContext*::refmvs_dsp::splat_mv
      Src: /src/dav1d/src/decode.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - c
    - t
    - bs
    - b
    - bw4
    - bh4
    argTypes:
    - Dav1dContext*
    - Dav1dTaskContext*
    - enum BlockSize
    - Av1Block*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 528
    functionName: splat_oneref_mv
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - Dav1dContext*::refmvs_dsp::splat_mv
    - imin
    linkageType: ''
    returnType: void
    signature: "void splat_oneref_mv(const Dav1dContext *const c,\n                                   Dav1dTaskContext
      *const t,\n                                   const enum BlockSize bs,\n                                   const
      Av1Block *const b,\n                                   const int bw4, const
      int bh4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Dav1dContext*::refmvs_dsp::splat_mv
      Src: /src/dav1d/src/decode.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - c
    - t
    - bs
    - b
    - bw4
    - bh4
    argTypes:
    - Dav1dContext*
    - Dav1dTaskContext*
    - enum BlockSize
    - Av1Block*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 543
    functionName: splat_intrabc_mv
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - Dav1dContext*::refmvs_dsp::splat_mv
    linkageType: ''
    returnType: void
    signature: "void splat_intrabc_mv(const Dav1dContext *const c,\n                                    Dav1dTaskContext
      *const t,\n                                    const enum BlockSize bs,\n                                    const
      Av1Block *const b,\n                                    const int bw4, const
      int bh4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:551,1
    - Dst: Dav1dContext*::refmvs_dsp::splat_mv
      Src: /src/dav1d/src/decode.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 6
    argNames:
    - c
    - t
    - bs
    - b
    - bw4
    - bh4
    argTypes:
    - Dav1dContext*
    - Dav1dTaskContext*
    - enum BlockSize
    - Av1Block*
    - int
    - int
    assertStmts:
    - condition: (bw4 >= 2 && bh4 >= 2)
      pos:
        line_end: 550
        line_start: 550
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 560
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 560
    functionName: splat_tworef_mv
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - Dav1dContext*::refmvs_dsp::splat_mv
    - assert
    linkageType: ''
    returnType: void
    signature: "void splat_tworef_mv(const Dav1dContext *const c,\n                                   Dav1dTaskContext
      *const t,\n                                   const enum BlockSize bs,\n                                   const
      Av1Block *const b,\n                                   const int bw4, const
      int bh4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Dav1dContext*::refmvs_dsp::splat_mv
      Src: /src/dav1d/src/decode.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - c
    - t
    - bs
    - bw4
    - bh4
    argTypes:
    - Dav1dContext*
    - Dav1dTaskContext*
    - enum BlockSize
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 574
    functionName: splat_intraref
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - Dav1dContext*::refmvs_dsp::splat_mv
    linkageType: ''
    returnType: void
    signature: "void splat_intraref(const Dav1dContext *const c,\n                                  Dav1dTaskContext
      *const t,\n                                  const enum BlockSize bs,\n                                  const
      int bw4, const int bh4)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imax
      Src: /src/dav1d/src/decode.c:583,1
    - Dst: apply_sign64
      Src: /src/dav1d/src/decode.c:587,1
    - Dst: llabs
      Src: /src/dav1d/src/decode.c:587,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - dst
    - by4
    - bh4
    - mvy
    - ss_ver
    - smp
    argTypes:
    - int*
    - int
    - int
    - int
    - int
    - struct ScalableMotionParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 591
    functionName: mc_lowest_px
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - llabs
    - imax
    - apply_sign64
    linkageType: ''
    returnType: void
    signature: "void mc_lowest_px(int *const dst, const int by4, const int bh4,\n
      \                        const int mvy, const int ss_ver,\n                         const
      struct ScalableMotionParams *const smp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:599,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:606,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - t
    - dst
    - b_dim
    - wmp
    - ss_ver
    - ss_hor
    argTypes:
    - Dav1dTaskContext*
    - int*
    - uint8_t*
    - Dav1dWarpedMotionParams*
    - int
    - int
    assertStmts:
    - condition: (!((b_dim[0] * h_mul) & 7) && !((b_dim[1] * v_mul) & 7))
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 614
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 614
    functionName: affine_lowest_px
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - imax
    - assert
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: "ALWAYS_INLINE affine_lowest_px(Dav1dTaskContext *const t, int *const
      dst,\n                                           const uint8_t *const b_dim,\n
      \                                          const Dav1dWarpedMotionParams *const
      wmp,\n                                           const int ss_ver, const int
      ss_hor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: affine_lowest_px
      Src: /src/dav1d/src/decode.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - t
    - dst
    - b_dim
    - wmp
    argTypes:
    - Dav1dTaskContext*
    - int*
    - uint8_t*
    - Dav1dWarpedMotionParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 621
    functionName: affine_lowest_px_luma
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - affine_lowest_px
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE affine_lowest_px_luma(Dav1dTaskContext *const t, int *const
      dst,\n                                           const uint8_t *const b_dim,\n
      \                                          const Dav1dWarpedMotionParams *const
      wmp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:628,1
    - Dst: affine_lowest_px_luma
      Src: /src/dav1d/src/decode.c:630,1
    - Dst: affine_lowest_px
      Src: /src/dav1d/src/decode.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - t
    - dst
    - b_dim
    - wmp
    argTypes:
    - Dav1dTaskContext*
    - int*
    - uint8_t*
    - Dav1dWarpedMotionParams*
    assertStmts:
    - condition: (f->cur.p.layout != DAV1D_PIXEL_LAYOUT_I400)
      pos:
        line_end: 627
        line_start: 627
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 633
      start: 623
    functionDepth: 3
    functionLinenumber: 623
    functionLinenumberEnd: 633
    functionName: affine_lowest_px_chroma
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - affine_lowest_px
    - assert
    - affine_lowest_px_luma
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE affine_lowest_px_chroma(Dav1dTaskContext *const t, int *const
      dst,\n                                             const uint8_t *const b_dim,\n
      \                                            const Dav1dWarpedMotionParams *const
      wmp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:640,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:650,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:656,1
    - Dst: mc_lowest_px
      Src: /src/dav1d/src/decode.c:657,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:662,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:667,1
    - Dst: iclip
      Src: /src/dav1d/src/decode.c:673,1
    - Dst: mc_lowest_px
      Src: /src/dav1d/src/decode.c:674,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:679,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 8
    argNames:
    - t
    - (*const dst)
    - is_chroma
    - b_dim
    - bx4
    - by4
    - w4
    - h4
    argTypes:
    - Dav1dTaskContext*
    - int[]
    - int
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (!(t->bx & 1) && !(t->by & 1))
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 681
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 681
    functionName: obmc_lowest_px
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - imin
    - assert
    - mc_lowest_px
    - imax
    - iclip
    linkageType: ''
    returnType: void
    signature: "void obmc_lowest_px(Dav1dTaskContext *const t,\n                           int
      (*const dst)[2], const int is_chroma,\n                           const uint8_t
      *const b_dim,\n                           const int bx4, const int by4, const
      int w4, const int h4)"
  - BBCount: 208
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/decode.c:698,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:698,1
    - Dst: Dav1dFrameContext*::bd_fn::recon_b_intra
      Src: /src/dav1d/src/decode.c:708,1
    - Dst: case_set
      Src: /src/dav1d/src/decode.c:717,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:720,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:735,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:736,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:739,1
    - Dst: dav1d_set_affine_mv2d
      Src: /src/dav1d/src/decode.c:750,1
    - Dst: dav1d_get_shear_params
      Src: /src/dav1d/src/decode.c:752,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:755,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:757,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:758,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:759,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:760,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:761,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:762,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:763,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:764,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:765,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:766,1
    - Dst: Dav1dFrameContext*::bd_fn::recon_b_inter
      Src: /src/dav1d/src/decode.c:771,1
    - Dst: case_set
      Src: /src/dav1d/src/decode.c:780,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:784,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:800,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:801,1
    - Dst: get_prev_frame_segid
      Src: /src/dav1d/src/decode.c:820,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:831,1
    - Dst: get_prev_frame_segid
      Src: /src/dav1d/src/decode.c:837,1
    - Dst: get_cur_frame_segid
      Src: /src/dav1d/src/decode.c:849,1
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/decode.c:851,1
    - Dst: neg_deinterleave
      Src: /src/dav1d/src/decode.c:856,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:863,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:874,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:877,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:880,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:890,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:892,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:901,1
    - Dst: get_prev_frame_segid
      Src: /src/dav1d/src/decode.c:907,1
    - Dst: get_cur_frame_segid
      Src: /src/dav1d/src/decode.c:918,1
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/decode.c:923,1
    - Dst: neg_deinterleave
      Src: /src/dav1d/src/decode.c:928,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:938,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/decode.c:947,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:955,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:969,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/decode.c:972,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/decode.c:973,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/decode.c:977,1
    - Dst: iclip
      Src: /src/dav1d/src/decode.c:980,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:982,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:990,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/decode.c:993,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/decode.c:994,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/decode.c:998,1
    - Dst: iclip
      Src: /src/dav1d/src/decode.c:1003,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1005,1
    - Dst: init_quant_tables
      Src: /src/dav1d/src/decode.c:1015,1
    - Dst: dav1d_calc_lf_values
      Src: /src/dav1d/src/decode.c:1024,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:1030,1
    - Dst: get_intra_ctx
      Src: /src/dav1d/src/decode.c:1034,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1036,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1039,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1042,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1044,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:1051,1
    - Dst: dav1d_msac_decode_symbol_adapt16
      Src: /src/dav1d/src/decode.c:1055,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1058,1
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/decode.c:1065,1
    - Dst: dav1d_msac_decode_symbol_adapt16
      Src: /src/dav1d/src/decode.c:1075,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1078,1
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/decode.c:1083,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:1086,1
    - Dst: dav1d_msac_decode_symbol_adapt16
      Src: /src/dav1d/src/decode.c:1089,1
    - Dst: dav1d_msac_decode_symbol_adapt16
      Src: /src/dav1d/src/decode.c:1097,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1105,1
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/decode.c:1111,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:1118,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1123,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1126,1
    - Dst: Dav1dFrameContext*::bd_fn::read_pal_plane
      Src: /src/dav1d/src/decode.c:1128,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1133,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1136,1
    - Dst: Dav1dFrameContext*::bd_fn::read_pal_uv
      Src: /src/dav1d/src/decode.c:1138,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:1143,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1145,1
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/decode.c:1149,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1153,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:1161,1
    - Dst: read_pal_indices
      Src: /src/dav1d/src/decode.c:1166,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1168,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:1175,1
    - Dst: read_pal_indices
      Src: /src/dav1d/src/decode.c:1180,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1182,1
    - Dst: get_tx_ctx
      Src: /src/dav1d/src/decode.c:1194,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:1196,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:1197,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1205,1
    - Dst: Dav1dFrameContext*::bd_fn::read_coef_blocks
      Src: /src/dav1d/src/decode.c:1210,1
    - Dst: Dav1dFrameContext*::bd_fn::recon_b_intra
      Src: /src/dav1d/src/decode.c:1212,1
    - Dst: dav1d_create_lf_mask_intra
      Src: /src/dav1d/src/decode.c:1218,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1243,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:1244,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1245,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1246,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1247,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1248,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1249,1
    - Dst: case_set
      Src: /src/dav1d/src/decode.c:1251,1
    - Dst: Dav1dFrameContext*::bd_fn::copy_pal_block_y
      Src: /src/dav1d/src/decode.c:1255,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:1258,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:1259,1
    - Dst: Dav1dFrameContext*::bd_fn::copy_pal_block_uv
      Src: /src/dav1d/src/decode.c:1261,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:1263,1
    - Dst: splat_intraref
      Src: /src/dav1d/src/decode.c:1264,1
    - Dst: IS_KEY_OR_INTRA
      Src: /src/dav1d/src/decode.c:1265,1
    - Dst: dav1d_refmvs_find
      Src: /src/dav1d/src/decode.c:1269,1
    - Dst: read_mv_residual
      Src: /src/dav1d/src/decode.c:1288,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1347,1
    - Dst: read_vartx_tree
      Src: /src/dav1d/src/decode.c:1350,1
    - Dst: Dav1dFrameContext*::bd_fn::read_coef_blocks
      Src: /src/dav1d/src/decode.c:1354,1
    - Dst: Dav1dFrameContext*::bd_fn::recon_b_inter
      Src: /src/dav1d/src/decode.c:1357,1
    - Dst: splat_intrabc_mv
      Src: /src/dav1d/src/decode.c:1360,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1368,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1369,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1370,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1371,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1372,1
    - Dst: case_set
      Src: /src/dav1d/src/decode.c:1373,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:1377,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:1378,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:1387,1
    - Dst: get_comp_ctx
      Src: /src/dav1d/src/decode.c:1389,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1391,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1394,1
    - Dst: dav1d_refmvs_find
      Src: /src/dav1d/src/decode.c:1409,1
    - Dst: fix_mv_precision
      Src: /src/dav1d/src/decode.c:1416,1
    - Dst: fix_mv_precision
      Src: /src/dav1d/src/decode.c:1417,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1419,1
    - Dst: get_comp_dir_ctx
      Src: /src/dav1d/src/decode.c:1423,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1425,1
    - Dst: av1_get_fwd_ref_ctx
      Src: /src/dav1d/src/decode.c:1429,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1431,1
    - Dst: av1_get_fwd_ref_2_ctx
      Src: /src/dav1d/src/decode.c:1434,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1436,1
    - Dst: av1_get_fwd_ref_1_ctx
      Src: /src/dav1d/src/decode.c:1439,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1441,1
    - Dst: av1_get_bwd_ref_ctx
      Src: /src/dav1d/src/decode.c:1446,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1448,1
    - Dst: av1_get_bwd_ref_1_ctx
      Src: /src/dav1d/src/decode.c:1453,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1455,1
    - Dst: av1_get_uni_p_ctx
      Src: /src/dav1d/src/decode.c:1460,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1462,1
    - Dst: av1_get_uni_p1_ctx
      Src: /src/dav1d/src/decode.c:1468,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1471,1
    - Dst: av1_get_uni_p2_ctx
      Src: /src/dav1d/src/decode.c:1474,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1476,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1482,1
    - Dst: dav1d_refmvs_find
      Src: /src/dav1d/src/decode.c:1487,1
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/decode.c:1492,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1496,1
    - Dst: get_drl_context
      Src: /src/dav1d/src/decode.c:1503,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1504,1
    - Dst: get_drl_context
      Src: /src/dav1d/src/decode.c:1507,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1508,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1512,1
    - Dst: get_drl_context
      Src: /src/dav1d/src/decode.c:1518,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1519,1
    - Dst: get_drl_context
      Src: /src/dav1d/src/decode.c:1522,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1523,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1527,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:1531,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:1552,1
    - Dst: assign_comp_mv
      Src: /src/dav1d/src/decode.c:1554,1
    - Dst: assign_comp_mv
      Src: /src/dav1d/src/decode.c:1555,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1558,1
    - Dst: get_mask_comp_ctx
      Src: /src/dav1d/src/decode.c:1565,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1567,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1570,1
    - Dst: get_jnt_comp_ctx
      Src: /src/dav1d/src/decode.c:1577,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1583,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1586,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1598,1
    - Dst: dav1d_msac_decode_symbol_adapt16
      Src: /src/dav1d/src/decode.c:1601,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/decode.c:1606,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1608,1
    - Dst: av1_get_ref_ctx
      Src: /src/dav1d/src/decode.c:1621,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1623,1
    - Dst: av1_get_ref_2_ctx
      Src: /src/dav1d/src/decode.c:1626,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1628,1
    - Dst: av1_get_ref_6_ctx
      Src: /src/dav1d/src/decode.c:1633,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1635,1
    - Dst: av1_get_ref_3_ctx
      Src: /src/dav1d/src/decode.c:1639,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1641,1
    - Dst: av1_get_ref_5_ctx
      Src: /src/dav1d/src/decode.c:1644,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1646,1
    - Dst: av1_get_ref_4_ctx
      Src: /src/dav1d/src/decode.c:1649,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1651,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1656,1
    - Dst: dav1d_refmvs_find
      Src: /src/dav1d/src/decode.c:1662,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1668,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1672,1
    - Dst: get_gmv_2d
      Src: /src/dav1d/src/decode.c:1676,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:1678,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1682,1
    - Dst: get_drl_context
      Src: /src/dav1d/src/decode.c:1688,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1689,1
    - Dst: get_drl_context
      Src: /src/dav1d/src/decode.c:1693,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1694,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:1702,1
    - Dst: fix_mv_precision
      Src: /src/dav1d/src/decode.c:1705,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1709,1
    - Dst: get_drl_context
      Src: /src/dav1d/src/decode.c:1717,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1718,1
    - Dst: get_drl_context
      Src: /src/dav1d/src/decode.c:1721,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1722,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:1726,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:1730,1
    - Dst: fix_mv_precision
      Src: /src/dav1d/src/decode.c:1732,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1735,1
    - Dst: read_mv_residual
      Src: /src/dav1d/src/decode.c:1738,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1740,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1748,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:1751,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1756,1
    - Dst: dav1d_msac_decode_symbol_adapt16
      Src: /src/dav1d/src/decode.c:1759,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1767,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:1774,1
    - Dst: findoddzero
      Src: /src/dav1d/src/decode.c:1779,1
    - Dst: findoddzero
      Src: /src/dav1d/src/decode.c:1780,1
    - Dst: find_matching_ref
      Src: /src/dav1d/src/decode.c:1785,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:1792,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:1794,1
    - Dst: derive_warpmv
      Src: /src/dav1d/src/decode.c:1797,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1800,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:1803,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:1804,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:1805,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:1806,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:1807,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:1808,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:1809,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:1810,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:1811,1
    - Dst: signabs
      Src: /src/dav1d/src/decode.c:1812,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1828,1
    - Dst: get_filter_ctx
      Src: /src/dav1d/src/decode.c:1841,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:1843,1
    - Dst: get_filter_ctx
      Src: /src/dav1d/src/decode.c:1847,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1850,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:1852,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1856,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:1861,1
    - Dst: read_vartx_tree
      Src: /src/dav1d/src/decode.c:1872,1
    - Dst: Dav1dFrameContext*::bd_fn::read_coef_blocks
      Src: /src/dav1d/src/decode.c:1876,1
    - Dst: Dav1dFrameContext*::bd_fn::recon_b_inter
      Src: /src/dav1d/src/decode.c:1878,1
    - Dst: dav1d_create_lf_mask_inter
      Src: /src/dav1d/src/decode.c:1894,1
    - Dst: splat_tworef_mv
      Src: /src/dav1d/src/decode.c:1904,1
    - Dst: splat_oneref_mv
      Src: /src/dav1d/src/decode.c:1906,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1916,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1917,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1918,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1919,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1920,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1921,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1922,1
    - Dst: rep_macro
      Src: /src/dav1d/src/decode.c:1923,1
    - Dst: case_set
      Src: /src/dav1d/src/decode.c:1924,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:1928,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:1929,1
    - Dst: case_set
      Src: /src/dav1d/src/decode.c:1943,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:1957,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:1964,1
    - Dst: affine_lowest_px_luma
      Src: /src/dav1d/src/decode.c:1968,1
    - Dst: mc_lowest_px
      Src: /src/dav1d/src/decode.c:1972,1
    - Dst: obmc_lowest_px
      Src: /src/dav1d/src/decode.c:1975,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:1985,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:1995,1
    - Dst: mc_lowest_px
      Src: /src/dav1d/src/decode.c:1998,1
    - Dst: mc_lowest_px
      Src: /src/dav1d/src/decode.c:2004,1
    - Dst: mc_lowest_px
      Src: /src/dav1d/src/decode.c:2010,1
    - Dst: mc_lowest_px
      Src: /src/dav1d/src/decode.c:2014,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:2017,1
    - Dst: affine_lowest_px_chroma
      Src: /src/dav1d/src/decode.c:2021,1
    - Dst: mc_lowest_px
      Src: /src/dav1d/src/decode.c:2025,1
    - Dst: obmc_lowest_px
      Src: /src/dav1d/src/decode.c:2029,1
    - Dst: affine_lowest_px_luma
      Src: /src/dav1d/src/decode.c:2038,1
    - Dst: mc_lowest_px
      Src: /src/dav1d/src/decode.c:2041,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:2049,1
    - Dst: affine_lowest_px_chroma
      Src: /src/dav1d/src/decode.c:2051,1
    - Dst: mc_lowest_px
      Src: /src/dav1d/src/decode.c:2054,1
    CyclomaticComplexity: 323
    EdgeCount: 323
    ICount: 764
    argCount: 5
    argNames:
    - t
    - bl
    - bs
    - bp
    - intra_edge_flags
    argTypes:
    - Dav1dTaskContext*
    - enum BlockLevel
    - enum BlockSize
    - enum BlockPartition
    - enum EdgeFlags
    assertStmts:
    - condition: (!b->drl_idx)
      pos:
        line_end: 1729
        line_start: 1729
        source_file: /src/dav1d/src/decode.c
    - condition: (ts->frame_thread[p].pal_idx)
      pos:
        line_end: 1174
        line_start: 1174
        source_file: /src/dav1d/src/decode.c
    - condition: (ss_hor == 1)
      pos:
        line_end: 1984
        line_start: 1984
        source_file: /src/dav1d/src/decode.c
    - condition: (b->drl_idx >= NEAREST_DRL && b->drl_idx <= NEARISH_DRL)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/dav1d/src/decode.c
    - condition: (ts->frame_thread[p].pal_idx)
      pos:
        line_end: 1160
        line_start: 1160
        source_file: /src/dav1d/src/decode.c
    - condition: (b->drl_idx >= NEAREST_DRL && b->drl_idx <= NEARISH_DRL)
      pos:
        line_end: 1530
        line_start: 1530
        source_file: /src/dav1d/src/decode.c
    - condition: (b->drl_idx >= NEAREST_DRL && b->drl_idx <= NEARISH_DRL)
      pos:
        line_end: 1701
        line_start: 1701
        source_file: /src/dav1d/src/decode.c
    - condition: (sign_u == sign / 3)
      pos:
        line_end: 1085
        line_start: 1085
        source_file: /src/dav1d/src/decode.c
    - condition: (ss_hor == 1)
      pos:
        line_end: 1994
        line_start: 1994
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 2062
      start: 683
    functionDepth: 4
    functionLinenumber: 683
    functionLinenumberEnd: 2062
    functionName: decode_b
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - Dav1dFrameContext*::bd_fn::copy_pal_block_uv
    - signabs
    - get_comp_dir_ctx
    - av1_get_uni_p2_ctx
    - dav1d_msac_decode_symbol_adapt8
    - av1_get_bwd_ref_1_ctx
    - case_set
    - dav1d_msac_decode_bools
    - init_quant_tables
    - get_intra_ctx
    - mc_lowest_px
    - av1_get_fwd_ref_ctx
    - get_filter_ctx
    - dav1d_refmvs_find
    - get_gmv_2d
    - read_vartx_tree
    - affine_lowest_px_luma
    - av1_get_bwd_ref_ctx
    - imin
    - av1_get_fwd_ref_1_ctx
    - get_prev_frame_segid
    - dav1d_get_shear_params
    - IS_KEY_OR_INTRA
    - Dav1dFrameContext*::bd_fn::recon_b_inter
    - Dav1dFrameContext*::bd_fn::read_pal_plane
    - read_mv_residual
    - neg_deinterleave
    - dav1d_set_affine_mv2d
    - Dav1dFrameContext*::bd_fn::copy_pal_block_y
    - dav1d_calc_lf_values
    - dav1d_create_lf_mask_inter
    - read_pal_indices
    - av1_get_ref_5_ctx
    - av1_get_fwd_ref_2_ctx
    - get_cur_frame_segid
    - av1_get_uni_p1_ctx
    - ulog2
    - Dav1dFrameContext*::bd_fn::read_coef_blocks
    - dav1d_msac_decode_bool_adapt
    - Dav1dFrameContext*::bd_fn::read_pal_uv
    - affine_lowest_px_chroma
    - splat_tworef_mv
    - Dav1dFrameContext*::bd_fn::recon_b_intra
    - dav1d_msac_decode_symbol_adapt16
    - get_tx_ctx
    - derive_warpmv
    - splat_intraref
    - get_mask_comp_ctx
    - av1_get_ref_2_ctx
    - findoddzero
    - rep_macro
    - av1_get_uni_p_ctx
    - printf
    - IS_INTER_OR_SWITCH
    - av1_get_ref_3_ctx
    - av1_get_ref_ctx
    - av1_get_ref_4_ctx
    - dav1d_create_lf_mask_intra
    - assert
    - av1_get_ref_6_ctx
    - assign_comp_mv
    - get_jnt_comp_ctx
    - find_matching_ref
    - splat_intrabc_mv
    - imax
    - dav1d_msac_decode_symbol_adapt4
    - splat_oneref_mv
    - obmc_lowest_px
    - get_drl_context
    - fix_mv_precision
    - iclip
    - get_comp_ctx
    - dav1d_msac_decode_bool_equi
    linkageType: ''
    returnType: int
    signature: "int decode_b(Dav1dTaskContext *const t,\n                    const
      enum BlockLevel bl,\n                    const enum BlockSize bs,\n                    const
      enum BlockPartition bp,\n                    const enum EdgeFlags intra_edge_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rep_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 715
    functionName: set_ctx
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx(rep_macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 754
    functionName: signabs
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signabs(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rep_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 780
    functionName: set_ctx
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx(rep_macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1083
    functionName: SIGN
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rep_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1242
    functionName: set_ctx
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx(rep_macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rep_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1367
    functionName: set_ctx
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx(rep_macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1552
    functionName: assign_comp_mv
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_comp_mv(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1799
    functionName: signabs
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signabs(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rep_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1915
    functionName: set_ctx
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx(rep_macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rep_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1938
    functionDepth: 0
    functionLinenumber: 1938
    functionLinenumberEnd: 1943
    functionName: set_ctx
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx(rep_macro)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2075,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:2082,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:2082,1
    - Dst: __msan_test_shadow
      Src: /src/dav1d/src/decode.c:2101,1
    - Dst: fprintf
      Src: /src/dav1d/src/decode.c:2102,1
    - Dst: __msan_check_mem_is_initialized
      Src: /src/dav1d/src/decode.c:2104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 5
    argNames:
    - t
    - bl
    - bs
    - bp
    - intra_edge_flags
    argTypes:
    - Dav1dTaskContext*
    - enum BlockLevel
    - enum BlockSize
    - enum BlockPartition
    - enum EdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2068
    functionDepth: 5
    functionLinenumber: 2068
    functionLinenumberEnd: 2111
    functionName: checked_decode_b
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - imin
    - __msan_check_mem_is_initialized
    - __msan_test_shadow
    - decode_b
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int checked_decode_b(Dav1dTaskContext *const t,\n                            const
      enum BlockLevel bl,\n                            const enum BlockSize bs,\n
      \                           const enum BlockPartition bp,\n                            const
      enum EdgeFlags intra_edge_flags)"
  - BBCount: 71
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:2127,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2128,1
    - Dst: INTRA_EDGE_SPLIT
      Src: /src/dav1d/src/decode.c:2128,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:2136,1
    - Dst: get_partition_ctx
      Src: /src/dav1d/src/decode.c:2140,1
    - Dst: dav1d_msac_decode_symbol_adapt16
      Src: /src/dav1d/src/decode.c:2149,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:2158,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2166,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2170,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2173,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2178,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2181,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:2188,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2189,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2193,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2197,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2201,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2216,1
    - Dst: INTRA_EDGE_SPLIT
      Src: /src/dav1d/src/decode.c:2216,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2219,1
    - Dst: INTRA_EDGE_SPLIT
      Src: /src/dav1d/src/decode.c:2219,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2223,1
    - Dst: INTRA_EDGE_SPLIT
      Src: /src/dav1d/src/decode.c:2223,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2226,1
    - Dst: INTRA_EDGE_SPLIT
      Src: /src/dav1d/src/decode.c:2226,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2233,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2236,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2240,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2246,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2249,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2252,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2259,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2262,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2266,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2272,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2275,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2278,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2286,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2289,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2292,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2296,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2303,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2306,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2309,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2313,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:2318,1
    - Dst: dav1d_msac_decode_bool
      Src: /src/dav1d/src/decode.c:2326,1
    - Dst: gather_top_partition_prob
      Src: /src/dav1d/src/decode.c:2327,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:2329,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:2334,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2337,1
    - Dst: INTRA_EDGE_SPLIT
      Src: /src/dav1d/src/decode.c:2337,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2339,1
    - Dst: INTRA_EDGE_SPLIT
      Src: /src/dav1d/src/decode.c:2339,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2343,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:2348,1
    - Dst: dav1d_msac_decode_bool
      Src: /src/dav1d/src/decode.c:2354,1
    - Dst: gather_left_partition_prob
      Src: /src/dav1d/src/decode.c:2355,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:2359,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:2364,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2367,1
    - Dst: INTRA_EDGE_SPLIT
      Src: /src/dav1d/src/decode.c:2367,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2369,1
    - Dst: INTRA_EDGE_SPLIT
      Src: /src/dav1d/src/decode.c:2369,1
    - Dst: decode_b
      Src: /src/dav1d/src/decode.c:2373,1
    - Dst: case_set_upto16
      Src: /src/dav1d/src/decode.c:2383,1
    - Dst: ulog2
      Src: /src/dav1d/src/decode.c:2383,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 223
    argCount: 3
    argNames:
    - t
    - bl
    - node
    argTypes:
    - Dav1dTaskContext*
    - enum BlockLevel
    - EdgeNode*
    assertStmts:
    - condition: (have_v_split)
      pos:
        line_end: 2347
        line_start: 2347
        source_file: /src/dav1d/src/decode.c
    - condition: (0)
      pos:
        line_end: 2317
        line_start: 2317
        source_file: /src/dav1d/src/decode.c
    - condition: (bl < BL_8X8)
      pos:
        line_end: 2363
        line_start: 2363
        source_file: /src/dav1d/src/decode.c
    - condition: (bl < BL_8X8)
      pos:
        line_end: 2126
        line_start: 2126
        source_file: /src/dav1d/src/decode.c
    - condition: (hsz == 1)
      pos:
        line_end: 2187
        line_start: 2187
        source_file: /src/dav1d/src/decode.c
    - condition: (bl < BL_8X8)
      pos:
        line_end: 2333
        line_start: 2333
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 2388
      start: 2117
    functionDepth: 5
    functionLinenumber: 2117
    functionLinenumberEnd: 2388
    functionName: decode_sb
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 1
    functionsReached:
    - ulog2
    - get_partition_ctx
    - dav1d_msac_decode_bool
    - gather_top_partition_prob
    - assert
    - dav1d_msac_decode_symbol_adapt16
    - decode_b
    - case_set_upto16
    - decode_sb
    - printf
    - gather_left_partition_prob
    - INTRA_EDGE_SPLIT
    linkageType: ''
    returnType: int
    signature: "int decode_sb(Dav1dTaskContext *const t, const enum BlockLevel bl,\n
      \                    const EdgeNode *const node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rep_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2380
    functionDepth: 0
    functionLinenumber: 2380
    functionLinenumberEnd: 2383
    functionName: set_ctx
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx(rep_macro)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2391,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2392,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2394,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2398,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2399,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2400,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2401,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2402,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2403,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2404,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2406,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2407,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2408,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2410,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2411,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2412,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2413,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - keyframe
    - pass
    argTypes:
    - BlockContext*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2390
    functionDepth: 0
    functionLinenumber: 2390
    functionLinenumberEnd: 2415
    functionName: reset_context
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void reset_context(BlockContext *const ctx, const int keyframe, const
      int pass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_cdf_thread_copy
      Src: /src/dav1d/src/decode.c:2452,1
    - Dst: dav1d_msac_init
      Src: /src/dav1d/src/decode.c:2456,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:2461,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:2463,1
    - Dst: atomic_init
      Src: /src/dav1d/src/decode.c:2507,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 7
    argNames:
    - ts
    - f
    - data
    - sz
    - tile_row
    - tile_col
    - tile_start_off
    argTypes:
    - Dav1dTileState*
    - Dav1dFrameContext*
    - uint8_t*
    - size_t
    - int
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2425
    functionDepth: 1
    functionLinenumber: 2425
    functionLinenumberEnd: 2509
    functionName: setup_tile
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - dav1d_cdf_thread_copy
    - dav1d_msac_init
    - imin
    - atomic_init
    linkageType: ''
    returnType: void
    signature: "void setup_tile(Dav1dTileState *const ts,\n                       const
      Dav1dFrameContext *const f,\n                       const uint8_t *const data,
      const size_t sz,\n                       const int tile_row, const int tile_col,\n
      \                      const unsigned tile_start_off)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/decode.c:2519,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/decode.c:2524,1
    - Dst: dav1d_msac_decode_subexp
      Src: /src/dav1d/src/decode.c:2532,1
    - Dst: dav1d_msac_decode_subexp
      Src: /src/dav1d/src/decode.c:2535,1
    - Dst: dav1d_msac_decode_subexp
      Src: /src/dav1d/src/decode.c:2538,1
    - Dst: dav1d_msac_decode_subexp
      Src: /src/dav1d/src/decode.c:2542,1
    - Dst: dav1d_msac_decode_subexp
      Src: /src/dav1d/src/decode.c:2545,1
    - Dst: dav1d_msac_decode_subexp
      Src: /src/dav1d/src/decode.c:2548,1
    - Dst: memcpy
      Src: /src/dav1d/src/decode.c:2550,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:2553,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/decode.c:2558,1
    - Dst: dav1d_msac_decode_subexp
      Src: /src/dav1d/src/decode.c:2561,1
    - Dst: dav1d_msac_decode_subexp
      Src: /src/dav1d/src/decode.c:2563,1
    - Dst: memcpy
      Src: /src/dav1d/src/decode.c:2565,1
    - Dst: memcpy
      Src: /src/dav1d/src/decode.c:2566,1
    - Dst: printf
      Src: /src/dav1d/src/decode.c:2569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - t
    - lr
    - p
    - frame_type
    argTypes:
    - Dav1dTaskContext*
    - Av1RestorationUnit*
    - int
    - enum Dav1dRestorationType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2511
    functionDepth: 1
    functionLinenumber: 2511
    functionLinenumberEnd: 2573
    functionName: read_restoration_info
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - memcpy
    - dav1d_msac_decode_bool_adapt
    - dav1d_msac_decode_bools
    - dav1d_msac_decode_symbol_adapt4
    - printf
    - dav1d_msac_decode_subexp
    linkageType: ''
    returnType: void
    signature: "void read_restoration_info(Dav1dTaskContext *const t,\n                                  Av1RestorationUnit
      *const lr, const int p,\n                                  const enum Dav1dRestorationType
      frame_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:2579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - msac
    argTypes:
    - MsacContext*
    assertStmts:
    - condition: (n_bits <= 0)
      pos:
        line_end: 2578
        line_start: 2578
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 2592
      start: 2576
    functionDepth: 1
    functionLinenumber: 2576
    functionLinenumberEnd: 2592
    functionName: check_trailing_bits_after_symbol_coder
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int check_trailing_bits_after_symbol_coder(const MsacContext *const
      msac)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:2604,1
    - Dst: dav1d_refmvs_tile_sbrow_init
      Src: /src/dav1d/src/decode.c:2605,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:2611,1
    - Dst: reset_context
      Src: /src/dav1d/src/decode.c:2619,1
    - Dst: IS_KEY_OR_INTRA
      Src: /src/dav1d/src/decode.c:2619,1
    - Dst: atomic_load_explicit
      Src: /src/dav1d/src/decode.c:2626,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2628,1
    - Dst: Dav1dFrameContext*::bd_fn::backup_ipred_edge
      Src: /src/dav1d/src/decode.c:2633,1
    - Dst: Dav1dFrameContext*::c::refmvs_dsp::load_tmvs
      Src: /src/dav1d/src/decode.c:2638,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2642,1
    - Dst: atomic_load_explicit
      Src: /src/dav1d/src/decode.c:2648,1
    - Dst: imax
      Src: /src/dav1d/src/decode.c:2685,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:2692,1
    - Dst: read_restoration_info
      Src: /src/dav1d/src/decode.c:2698,1
    - Dst: read_restoration_info
      Src: /src/dav1d/src/decode.c:2711,1
    - Dst: decode_sb
      Src: /src/dav1d/src/decode.c:2714,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:2722,1
    - Dst: dav1d_refmvs_save_tmvs
      Src: /src/dav1d/src/decode.c:2723,1
    - Dst: Dav1dFrameContext*::bd_fn::backup_ipred_edge
      Src: /src/dav1d/src/decode.c:2730,1
    - Dst: memcpy
      Src: /src/dav1d/src/decode.c:2735,1
    - Dst: memcpy
      Src: /src/dav1d/src/decode.c:2739,1
    - Dst: check_trailing_bits_after_symbol_coder
      Src: /src/dav1d/src/decode.c:2747,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 76
    argCount: 1
    argNames:
    - t
    argTypes:
    - Dav1dTaskContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2594
    functionDepth: 6
    functionLinenumber: 2594
    functionLinenumberEnd: 2748
    functionName: dav1d_decode_tile_sbrow
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - memcpy
    - imin
    - IS_KEY_OR_INTRA
    - atomic_load_explicit
    - reset_context
    - Dav1dFrameContext*::bd_fn::backup_ipred_edge
    - read_restoration_info
    - memset
    - dav1d_refmvs_save_tmvs
    - decode_sb
    - dav1d_refmvs_tile_sbrow_init
    - imax
    - IS_INTER_OR_SWITCH
    - Dav1dFrameContext*::c::refmvs_dsp::load_tmvs
    - check_trailing_bits_after_symbol_coder
    linkageType: ''
    returnType: int
    signature: int dav1d_decode_tile_sbrow(Dav1dTaskContext *const t)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:2752,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/decode.c:2755,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/decode.c:2756,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/decode.c:2773,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/decode.c:2775,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/decode.c:2781,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/decode.c:2782,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/decode.c:2789,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/decode.c:2790,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/decode.c:2817,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/decode.c:2819,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/decode.c:2841,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/decode.c:2843,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/decode.c:2854,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/decode.c:2856,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:2861,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/decode.c:2868,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/decode.c:2870,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/decode.c:2881,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/decode.c:2883,1
    - Dst: dav1d_freep_aligned
      Src: /src/dav1d/src/decode.c:2892,1
    - Dst: dav1d_freep_aligned
      Src: /src/dav1d/src/decode.c:2893,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/decode.c:2907,1
    - Dst: llabs
      Src: /src/dav1d/src/decode.c:2909,1
    - Dst: llabs
      Src: /src/dav1d/src/decode.c:2910,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/decode.c:2911,1
    - Dst: llabs
      Src: /src/dav1d/src/decode.c:2925,1
    - Dst: llabs
      Src: /src/dav1d/src/decode.c:2939,1
    - Dst: llabs
      Src: /src/dav1d/src/decode.c:2944,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/decode.c:2966,1
    - Dst: llabs
      Src: /src/dav1d/src/decode.c:2969,1
    - Dst: llabs
      Src: /src/dav1d/src/decode.c:2970,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/decode.c:2971,1
    - Dst: llabs
      Src: /src/dav1d/src/decode.c:2982,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/decode.c:2997,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/decode.c:2998,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/decode.c:2999,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/decode.c:3002,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/decode.c:3008,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/decode.c:3009,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/decode.c:3022,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/decode.c:3023,1
    - Dst: dav1d_calc_eih
      Src: /src/dav1d/src/decode.c:3035,1
    - Dst: dav1d_calc_lf_values
      Src: /src/dav1d/src/decode.c:3038,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:3039,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/decode.c:3043,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/decode.c:3045,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/decode.c:3057,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/decode.c:3058,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:3068,1
    - Dst: dav1d_refmvs_init_frame
      Src: /src/dav1d/src/decode.c:3070,1
    - Dst: init_quant_tables
      Src: /src/dav1d/src/decode.c:3077,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:3085,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:3096,1
    - Dst: abs
      Src: /src/dav1d/src/decode.c:3096,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/decode.c:3096,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:3099,1
    - Dst: abs
      Src: /src/dav1d/src/decode.c:3099,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/decode.c:3099,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 283
    argCount: 1
    argNames:
    - f
    argTypes:
    - Dav1dFrameContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 2750
    functionDepth: 4
    functionLinenumber: 2750
    functionLinenumberEnd: 3140
    functionName: dav1d_decode_frame_init
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - dav1d_calc_eih
    - dav1d_malloc
    - imin
    - dav1d_refmvs_init_frame
    - dav1d_free_aligned
    - dav1d_freep_aligned
    - memset
    - dav1d_alloc_aligned
    - dav1d_free
    - IS_INTER_OR_SWITCH
    - llabs
    - init_quant_tables
    - abs
    - dav1d_calc_lf_values
    - get_poc_diff
    - DAV1D_ERR
    linkageType: ''
    returnType: int
    signature: int dav1d_decode_frame_init(Dav1dFrameContext *const f)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:3144,1
    - Dst: dav1d_cdf_thread_copy
      Src: /src/dav1d/src/decode.c:3147,1
    - Dst: setup_tile
      Src: /src/dav1d/src/decode.c:3170,1
    - Dst: reset_context
      Src: /src/dav1d/src/decode.c:3187,1
    - Dst: IS_KEY_OR_INTRA
      Src: /src/dav1d/src/decode.c:3187,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - f
    argTypes:
    - Dav1dFrameContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3194
      start: 3142
    functionDepth: 2
    functionLinenumber: 3142
    functionLinenumberEnd: 3194
    functionName: dav1d_decode_frame_init_cdf
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - IS_KEY_OR_INTRA
    - reset_context
    - setup_tile
    - dav1d_cdf_thread_copy
    - DAV1D_ERR
    linkageType: ''
    returnType: int
    signature: int dav1d_decode_frame_init_cdf(Dav1dFrameContext *const f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:3198,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:3200,1
    - Dst: reset_context
      Src: /src/dav1d/src/decode.c:3207,1
    - Dst: IS_KEY_OR_INTRA
      Src: /src/dav1d/src/decode.c:3207,1
    - Dst: imin
      Src: /src/dav1d/src/decode.c:3213,1
    - Dst: Dav1dFrameContext*::c::refmvs_dsp::load_tmvs
      Src: /src/dav1d/src/decode.c:3220,1
    - Dst: dav1d_decode_tile_sbrow
      Src: /src/dav1d/src/decode.c:3225,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:3227,1
    - Dst: dav1d_refmvs_save_tmvs
      Src: /src/dav1d/src/decode.c:3228,1
    - Dst: Dav1dFrameContext*::bd_fn::filter_sbrow
      Src: /src/dav1d/src/decode.c:3233,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - f
    argTypes:
    - Dav1dFrameContext*
    assertStmts:
    - condition: (f->c->n_tc == 1)
      pos:
        line_end: 3199
        line_start: 3199
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 3240
      start: 3196
    functionDepth: 7
    functionLinenumber: 3196
    functionLinenumberEnd: 3240
    functionName: dav1d_decode_frame_main
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - imin
    - Dav1dFrameContext*::bd_fn::filter_sbrow
    - IS_KEY_OR_INTRA
    - reset_context
    - assert
    - IS_INTER_OR_SWITCH
    - dav1d_refmvs_save_tmvs
    - dav1d_decode_tile_sbrow
    - DAV1D_ERR
    - Dav1dFrameContext*::c::refmvs_dsp::load_tmvs
    linkageType: ''
    returnType: int
    signature: int dav1d_decode_frame_main(Dav1dFrameContext *const f)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: atomic_init
      Src: /src/dav1d/src/decode.c:3246,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:3249,1
    - Dst: atomic_load
      Src: /src/dav1d/src/decode.c:3255,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:3257,1
    - Dst: atomic_store
      Src: /src/dav1d/src/decode.c:3258,1
    - Dst: atomic_store
      Src: /src/dav1d/src/decode.c:3259,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3261,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3263,1
    - Dst: dav1d_picture_unref_internal
      Src: /src/dav1d/src/decode.c:3266,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3267,1
    - Dst: dav1d_cdf_thread_unref
      Src: /src/dav1d/src/decode.c:3268,1
    - Dst: atomic_store
      Src: /src/dav1d/src/decode.c:3271,1
    - Dst: dav1d_cdf_thread_unref
      Src: /src/dav1d/src/decode.c:3272,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3274,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3275,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3276,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3277,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3278,1
    - Dst: dav1d_data_unref_internal
      Src: /src/dav1d/src/decode.c:3281,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - f
    - retval
    argTypes:
    - Dav1dFrameContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3283
      start: 3242
    functionDepth: 4
    functionLinenumber: 3242
    functionLinenumberEnd: 3283
    functionName: dav1d_decode_frame_exit
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - dav1d_cdf_thread_unref
    - dav1d_thread_picture_unref
    - dav1d_picture_unref_internal
    - memset
    - atomic_init
    - dav1d_ref_dec
    - dav1d_data_unref_internal
    - atomic_load
    - DAV1D_ERR
    - atomic_store
    linkageType: ''
    returnType: void
    signature: void dav1d_decode_frame_exit(Dav1dFrameContext *const f, int retval)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/decode.c:3286,1
    - Dst: dav1d_decode_frame_init
      Src: /src/dav1d/src/decode.c:3289,1
    - Dst: dav1d_decode_frame_init_cdf
      Src: /src/dav1d/src/decode.c:3290,1
    - Dst: dav1d_task_create_tile_sbrow
      Src: /src/dav1d/src/decode.c:3294,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/decode.c:3295,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/decode.c:3296,1
    - Dst: atomic_load
      Src: /src/dav1d/src/decode.c:3299,1
    - Dst: pthread_cond_wait
      Src: /src/dav1d/src/decode.c:3301,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/decode.c:3305,1
    - Dst: dav1d_decode_frame_main
      Src: /src/dav1d/src/decode.c:3308,1
    - Dst: dav1d_cdf_thread_update
      Src: /src/dav1d/src/decode.c:3310,1
    - Dst: dav1d_decode_frame_exit
      Src: /src/dav1d/src/decode.c:3315,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - f
    argTypes:
    - Dav1dFrameContext*
    assertStmts:
    - condition: (f->c->n_fc == 1)
      pos:
        line_end: 3285
        line_start: 3285
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 3319
      start: 3285
    functionDepth: 8
    functionLinenumber: 3285
    functionLinenumberEnd: 3319
    functionName: dav1d_decode_frame
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_cond_wait
    - dav1d_decode_frame_main
    - dav1d_cdf_thread_update
    - assert
    - pthread_cond_signal
    - dav1d_decode_frame_init
    - dav1d_decode_frame_init_cdf
    - pthread_mutex_unlock
    - dav1d_decode_frame_exit
    - atomic_load
    - dav1d_task_create_tile_sbrow
    linkageType: ''
    returnType: int
    signature: int dav1d_decode_frame(Dav1dFrameContext *const f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in_w
    - out_w
    - step
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3321
    functionDepth: 0
    functionLinenumber: 3321
    functionLinenumberEnd: 3325
    functionName: get_upscale_x0
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_upscale_x0(const int in_w, const int out_w, const int step)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/decode.c:3334,1
    - Dst: pthread_cond_wait
      Src: /src/dav1d/src/decode.c:3341,1
    - Dst: atomic_load
      Src: /src/dav1d/src/decode.c:3344,1
    - Dst: atomic_load
      Src: /src/dav1d/src/decode.c:3345,1
    - Dst: atomic_fetch_add
      Src: /src/dav1d/src/decode.c:3347,1
    - Dst: atomic_store
      Src: /src/dav1d/src/decode.c:3349,1
    - Dst: atomic_compare_exchange_strong
      Src: /src/dav1d/src/decode.c:3350,1
    - Dst: dav1d_data_props_copy
      Src: /src/dav1d/src/decode.c:3359,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3360,1
    - Dst: atomic_load_explicit
      Src: /src/dav1d/src/decode.c:3362,1
    - Dst: dav1d_thread_picture_ref
      Src: /src/dav1d/src/decode.c:3367,1
    - Dst: dav1d_picture_get_event_flags
      Src: /src/dav1d/src/decode.c:3368,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3370,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/decode.c:3378,1
    - Dst: assign_bitdepth_case
      Src: /src/dav1d/src/decode.c:3402,1
    - Dst: assign_bitdepth_case
      Src: /src/dav1d/src/decode.c:3407,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/decode.c:3411,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:3413,1
    - Dst: assign_bitdepth_case
      Src: /src/dav1d/src/decode.c:3435,1
    - Dst: assign_bitdepth_case
      Src: /src/dav1d/src/decode.c:3439,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:3445,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:3449,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3464,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:3465,1
    - Dst: dav1d_thread_picture_ref
      Src: /src/dav1d/src/decode.c:3468,1
    - Dst: scale_fac
      Src: /src/dav1d/src/decode.c:3475,1
    - Dst: scale_fac
      Src: /src/dav1d/src/decode.c:3477,1
    - Dst: dav1d_get_shear_params
      Src: /src/dav1d/src/decode.c:3486,1
    - Dst: dav1d_cdf_thread_init_static
      Src: /src/dav1d/src/decode.c:3493,1
    - Dst: dav1d_cdf_thread_ref
      Src: /src/dav1d/src/decode.c:3496,1
    - Dst: dav1d_cdf_thread_alloc
      Src: /src/dav1d/src/decode.c:3499,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/decode.c:3505,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:3506,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/decode.c:3507,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:3510,1
    - Dst: memcpy
      Src: /src/dav1d/src/decode.c:3515,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:3516,1
    - Dst: dav1d_thread_picture_alloc
      Src: /src/dav1d/src/decode.c:3521,1
    - Dst: dav1d_picture_alloc_copy
      Src: /src/dav1d/src/decode.c:3525,1
    - Dst: dav1d_picture_ref
      Src: /src/dav1d/src/decode.c:3528,1
    - Dst: scale_fac
      Src: /src/dav1d/src/decode.c:3532,1
    - Dst: scale_fac
      Src: /src/dav1d/src/decode.c:3536,1
    - Dst: get_upscale_x0
      Src: /src/dav1d/src/decode.c:3538,1
    - Dst: get_upscale_x0
      Src: /src/dav1d/src/decode.c:3539,1
    - Dst: dav1d_thread_picture_ref
      Src: /src/dav1d/src/decode.c:3545,1
    - Dst: dav1d_picture_get_event_flags
      Src: /src/dav1d/src/decode.c:3546,1
    - Dst: dav1d_thread_picture_ref
      Src: /src/dav1d/src/decode.c:3549,1
    - Dst: atomic_init
      Src: /src/dav1d/src/decode.c:3563,1
    - Dst: atomic_store
      Src: /src/dav1d/src/decode.c:3567,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/decode.c:3571,1
    - Dst: dav1d_ref_create_using_pool
      Src: /src/dav1d/src/decode.c:3572,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:3575,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:3583,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/decode.c:3594,1
    - Dst: memcpy
      Src: /src/dav1d/src/decode.c:3600,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:3604,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:3608,1
    - Dst: assert
      Src: /src/dav1d/src/decode.c:3621,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/decode.c:3627,1
    - Dst: dav1d_ref_create_using_pool
      Src: /src/dav1d/src/decode.c:3637,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3640,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:3641,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/decode.c:3649,1
    - Dst: dav1d_ref_create_using_pool
      Src: /src/dav1d/src/decode.c:3654,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/decode.c:3656,1
    - Dst: memset
      Src: /src/dav1d/src/decode.c:3660,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3673,1
    - Dst: dav1d_thread_picture_ref
      Src: /src/dav1d/src/decode.c:3674,1
    - Dst: dav1d_cdf_thread_unref
      Src: /src/dav1d/src/decode.c:3676,1
    - Dst: dav1d_cdf_thread_ref
      Src: /src/dav1d/src/decode.c:3678,1
    - Dst: dav1d_cdf_thread_ref
      Src: /src/dav1d/src/decode.c:3680,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3683,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/decode.c:3686,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3687,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/decode.c:3691,1
    - Dst: memcpy
      Src: /src/dav1d/src/decode.c:3693,1
    - Dst: dav1d_decode_frame
      Src: /src/dav1d/src/decode.c:3698,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3699,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3703,1
    - Dst: dav1d_cdf_thread_unref
      Src: /src/dav1d/src/decode.c:3704,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3705,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3706,1
    - Dst: dav1d_task_frame_init
      Src: /src/dav1d/src/decode.c:3712,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/decode.c:3713,1
    - Dst: atomic_init
      Src: /src/dav1d/src/decode.c:3718,1
    - Dst: dav1d_cdf_thread_unref
      Src: /src/dav1d/src/decode.c:3719,1
    - Dst: dav1d_cdf_thread_unref
      Src: /src/dav1d/src/decode.c:3721,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3724,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3725,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3728,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3730,1
    - Dst: dav1d_picture_unref_internal
      Src: /src/dav1d/src/decode.c:3731,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/decode.c:3732,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3733,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3734,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/decode.c:3735,1
    - Dst: dav1d_data_props_copy
      Src: /src/dav1d/src/decode.c:3736,1
    - Dst: dav1d_data_unref_internal
      Src: /src/dav1d/src/decode.c:3739,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/decode.c:3743,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 300
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dContext*
    assertStmts:
    - condition: (c->n_tile_data < INT_MAX / (int)sizeof(*f->tile))
      pos:
        line_end: 3505
        line_start: 3505
        source_file: /src/dav1d/src/decode.c
    - condition: (pri_ref != DAV1D_PRIMARY_REF_NONE)
      pos:
        line_end: 3620
        line_start: 3620
        source_file: /src/dav1d/src/decode.c
    constantsTouched: []
    func_position:
      end: 3746
      start: 3327
    functionDepth: 9
    functionLinenumber: 3327
    functionLinenumberEnd: 3746
    functionName: dav1d_submit_frame
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 0
    functionsReached:
    - dav1d_cdf_thread_ref
    - dav1d_cdf_thread_unref
    - dav1d_thread_picture_unref
    - atomic_fetch_add
    - memset
    - dav1d_free
    - dav1d_cdf_thread_init_static
    - atomic_init
    - pthread_mutex_unlock
    - atomic_load
    - dav1d_picture_get_event_flags
    - dav1d_ref_create_using_pool
    - dav1d_get_shear_params
    - dav1d_thread_picture_ref
    - dav1d_ref_dec
    - dav1d_data_unref_internal
    - dav1d_picture_ref
    - atomic_compare_exchange_strong
    - DAV1D_ERR
    - dav1d_picture_unref_internal
    - pthread_mutex_lock
    - dav1d_malloc
    - get_upscale_x0
    - dav1d_cdf_thread_alloc
    - dav1d_data_props_copy
    - dav1d_log
    - scale_fac
    - dav1d_thread_picture_alloc
    - dav1d_picture_alloc_copy
    - IS_INTER_OR_SWITCH
    - atomic_store
    - dav1d_task_frame_init
    - memcpy
    - pthread_cond_wait
    - assign_bitdepth_case
    - atomic_load_explicit
    - assert
    - dav1d_decode_frame
    - dav1d_ref_inc
    linkageType: ''
    returnType: int
    signature: int dav1d_submit_frame(Dav1dContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3400
      start: 3391
    functionDepth: 0
    functionLinenumber: 3391
    functionLinenumberEnd: 3400
    functionName: assign_bitdepth_case
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_bitdepth_case(bd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3433
      start: 3418
    functionDepth: 0
    functionLinenumber: 3418
    functionLinenumberEnd: 3433
    functionName: assign_bitdepth_case
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_bitdepth_case(bd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ref_sz
    - ','
    - this_sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3475
      start: 3473
    functionDepth: 0
    functionLinenumber: 3473
    functionLinenumberEnd: 3475
    functionName: scale_fac
    functionSourceFile: /src/dav1d/src/decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scale_fac(ref_sz, this_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: decl_itx_1d_fn
    functionSourceFile: /src/dav1d/src/itx_1d.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx_1d_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 122
    functionName: dav1d_get_default_cpu_flags
    functionSourceFile: /src/dav1d/src/cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE unsigned
    signature: ALWAYS_INLINE unsigned dav1d_get_default_cpu_flags(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/cpu.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: dav1d_get_cpu_flags
    functionSourceFile: /src/dav1d/src/cpu.h
    functionUses: 1
    functionsReached:
    - dav1d_get_default_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE unsigned
    signature: ALWAYS_INLINE unsigned dav1d_get_cpu_flags(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/dav1d/src/wedge.c:91,1
    - Dst: memcpy
      Src: /src/dav1d/src/wedge.c:92,1
    - Dst: imax
      Src: /src/dav1d/src/wedge.c:92,1
    - Dst: imax
      Src: /src/dav1d/src/wedge.c:92,1
    - Dst: imin
      Src: /src/dav1d/src/wedge.c:92,1
    - Dst: memset
      Src: /src/dav1d/src/wedge.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - src
    - ctr
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: insert_border
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 0
    functionsReached:
    - memcpy
    - imax
    - imin
    - memset
    linkageType: ''
    returnType: void
    signature: "void insert_border(uint8_t *const dst, const uint8_t *const src,\n
      \                         const int ctr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: transpose
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void transpose(uint8_t *const dst, const uint8_t *const src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: hflip
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hflip(uint8_t *const dst, const uint8_t *const src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/dav1d/src/wedge.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - dst
    - src
    - sign
    - w
    - h
    - x_off
    - y_off
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 127
    functionName: copy2d
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void copy2d(uint8_t *dst, const uint8_t *src, int sign,\n                   const
      int w, const int h, const int x_off, const int y_off)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: MASK_OFFSET
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_OFFSET(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MASK_OFFSET
      Src: /src/dav1d/src/wedge.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - chroma
    - luma
    - sign
    - w
    - h
    - ss_ver
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 146
    functionName: init_chroma
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 0
    functionsReached:
    - MASK_OFFSET
    linkageType: ''
    returnType: COLD
    signature: "COLD init_chroma(uint8_t *chroma, const uint8_t *luma,\n                                 const
      int sign, const int w, const int h,\n                                 const
      int ss_ver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy2d
      Src: /src/dav1d/src/wedge.c:164,1
    - Dst: MASK_OFFSET
      Src: /src/dav1d/src/wedge.c:170,1
    - Dst: init_chroma
      Src: /src/dav1d/src/wedge.c:173,1
    - Dst: init_chroma
      Src: /src/dav1d/src/wedge.c:175,1
    - Dst: init_chroma
      Src: /src/dav1d/src/wedge.c:177,1
    - Dst: init_chroma
      Src: /src/dav1d/src/wedge.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 9
    argNames:
    - w
    - h
    - bs
    - (*const master)
    - cb
    - masks_444
    - masks_422
    - masks_420
    - signs
    argTypes:
    - int
    - int
    - enum BlockSize
    - uint8_t[]
    - wedge_code_type*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 186
    functionName: fill2d_16x2
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 0
    functionsReached:
    - init_chroma
    - MASK_OFFSET
    - copy2d
    linkageType: ''
    returnType: COLD
    signature: "COLD fill2d_16x2(const int w, const int h, const enum BlockSize bs,\n
      \                            const uint8_t (*const master)[64 * 64],\n                             const
      wedge_code_type *const cb,\n                             uint8_t *masks_444,
      uint8_t *masks_422,\n                             uint8_t *masks_420, unsigned
      signs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/dav1d/src/wedge.c:199,1
    - Dst: imin
      Src: /src/dav1d/src/wedge.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - mask_v
    - w
    - h
    - step
    argTypes:
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 205
    functionName: build_nondc_ii_masks
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 0
    functionsReached:
    - imin
    - memset
    linkageType: ''
    returnType: COLD
    signature: "COLD build_nondc_ii_masks(uint8_t *const mask_v, const int w,\n                                      const
      int h, const int step)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_border
      Src: /src/dav1d/src/wedge.c:225,1
    - Dst: insert_border
      Src: /src/dav1d/src/wedge.c:229,1
    - Dst: insert_border
      Src: /src/dav1d/src/wedge.c:231,1
    - Dst: transpose
      Src: /src/dav1d/src/wedge.c:235,1
    - Dst: transpose
      Src: /src/dav1d/src/wedge.c:236,1
    - Dst: hflip
      Src: /src/dav1d/src/wedge.c:237,1
    - Dst: hflip
      Src: /src/dav1d/src/wedge.c:238,1
    - Dst: fill
      Src: /src/dav1d/src/wedge.c:247,1
    - Dst: fill
      Src: /src/dav1d/src/wedge.c:248,1
    - Dst: fill
      Src: /src/dav1d/src/wedge.c:249,1
    - Dst: fill
      Src: /src/dav1d/src/wedge.c:250,1
    - Dst: fill
      Src: /src/dav1d/src/wedge.c:251,1
    - Dst: fill
      Src: /src/dav1d/src/wedge.c:252,1
    - Dst: fill
      Src: /src/dav1d/src/wedge.c:253,1
    - Dst: fill
      Src: /src/dav1d/src/wedge.c:254,1
    - Dst: fill
      Src: /src/dav1d/src/wedge.c:255,1
    - Dst: memset
      Src: /src/dav1d/src/wedge.c:258,1
    - Dst: MASK_OFFSET
      Src: /src/dav1d/src/wedge.c:267,1
    - Dst: BUILD_NONDC_II_MASKS
      Src: /src/dav1d/src/wedge.c:281,1
    - Dst: BUILD_NONDC_II_MASKS
      Src: /src/dav1d/src/wedge.c:282,1
    - Dst: BUILD_NONDC_II_MASKS
      Src: /src/dav1d/src/wedge.c:283,1
    - Dst: BUILD_NONDC_II_MASKS
      Src: /src/dav1d/src/wedge.c:284,1
    - Dst: BUILD_NONDC_II_MASKS
      Src: /src/dav1d/src/wedge.c:285,1
    - Dst: BUILD_NONDC_II_MASKS
      Src: /src/dav1d/src/wedge.c:286,1
    - Dst: BUILD_NONDC_II_MASKS
      Src: /src/dav1d/src/wedge.c:287,1
    - Dst: BUILD_NONDC_II_MASKS
      Src: /src/dav1d/src/wedge.c:288,1
    - Dst: BUILD_NONDC_II_MASKS
      Src: /src/dav1d/src/wedge.c:289,1
    - Dst: ASSIGN_NONDC_II_OFFSET
      Src: /src/dav1d/src/wedge.c:291,1
    - Dst: ASSIGN_NONDC_II_OFFSET
      Src: /src/dav1d/src/wedge.c:292,1
    - Dst: ASSIGN_NONDC_II_OFFSET
      Src: /src/dav1d/src/wedge.c:293,1
    - Dst: ASSIGN_NONDC_II_OFFSET
      Src: /src/dav1d/src/wedge.c:294,1
    - Dst: ASSIGN_NONDC_II_OFFSET
      Src: /src/dav1d/src/wedge.c:295,1
    - Dst: ASSIGN_NONDC_II_OFFSET
      Src: /src/dav1d/src/wedge.c:296,1
    - Dst: ASSIGN_NONDC_II_OFFSET
      Src: /src/dav1d/src/wedge.c:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 299
    functionName: dav1d_init_ii_wedge_masks
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 0
    functionsReached:
    - MASK_OFFSET
    - fill
    - BUILD_NONDC_II_MASKS
    - memset
    - ASSIGN_NONDC_II_OFFSET
    - hflip
    - insert_border
    - transpose
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_init_ii_wedge_masks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - sz_422
    - ','
    - sz_420
    - ','
    - hvsw
    - ','
    - signs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: fill
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fill(w, h, sz_422, sz_420, hvsw, signs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - step
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: BUILD_NONDC_II_MASKS
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_NONDC_II_MASKS(w, h, step)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - bs
    - ','
    - w444
    - ','
    - h444
    - ','
    - w422
    - ','
    - h422
    - ','
    - w420
    - ','
    - h420
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: ASSIGN_NONDC_II_OFFSET
    functionSourceFile: /src/dav1d/src/wedge.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSIGN_NONDC_II_OFFSET(bs, w444, h444, w422, h422, w420, h420)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: decl_pal_idx_finish_fn
    functionSourceFile: /src/dav1d/src/pal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_pal_idx_finish_fn(name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:51,1
    - Dst: atomic_exchange
      Src: /src/dav1d/src/thread_task.c:52,1
    - Dst: umin
      Src: /src/dav1d/src/thread_task.c:69,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 3
    argNames:
    - c
    - ttd
    - frame_idx
    argTypes:
    - Dav1dContext*
    - struct TaskThreadData*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 80
    functionName: reset_task_cur
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - atomic_exchange
    - umin
    - atomic_load
    linkageType: ''
    returnType: int
    signature: "int reset_task_cur(const Dav1dContext *const c,\n                                 struct
      TaskThreadData *const ttd,\n                                 unsigned frame_idx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:85,1
    - Dst: atomic_exchange
      Src: /src/dav1d/src/thread_task.c:90,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:92,1
    - Dst: atomic_compare_exchange_strong
      Src: /src/dav1d/src/thread_task.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ttd
    - frame_idx
    - n_frames
    argTypes:
    - struct TaskThreadData*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: reset_task_cur_async
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - atomic_compare_exchange_strong
    - atomic_exchange
    - atomic_load
    linkageType: ''
    returnType: void
    signature: "void reset_task_cur_async(struct TaskThreadData *const ttd,\n                                        unsigned
      frame_idx, unsigned n_frames)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:104,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:105,1
    - Dst: reset_task_cur
      Src: /src/dav1d/src/thread_task.c:110,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:111,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 6
    argNames:
    - f
    - first
    - last
    - a
    - b
    - cond_signal
    argTypes:
    - Dav1dFrameContext*
    - Dav1dTask*
    - Dav1dTask*
    - Dav1dTask*
    - Dav1dTask*
    - int
    assertStmts:
    - condition: (!a || a->next == b)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/dav1d/src/thread_task.c
    constantsTouched: []
    func_position:
      end: 113
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 113
    functionName: insert_tasks_between
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - assert
    - pthread_cond_signal
    - atomic_fetch_or
    - reset_task_cur
    - atomic_load
    linkageType: ''
    returnType: void
    signature: "void insert_tasks_between(Dav1dFrameContext *const f,\n                                 Dav1dTask
      *const first, Dav1dTask *const last,\n                                 Dav1dTask
      *const a, Dav1dTask *const b,\n                                 const int cond_signal)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: insert_tasks_between
      Src: /src/dav1d/src/thread_task.c:130,1
    - Dst: insert_tasks_between
      Src: /src/dav1d/src/thread_task.c:136,1
    - Dst: insert_tasks_between
      Src: /src/dav1d/src/thread_task.c:141,1
    - Dst: insert_tasks_between
      Src: /src/dav1d/src/thread_task.c:147,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:154,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:156,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:157,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:161,1
    - Dst: insert_tasks_between
      Src: /src/dav1d/src/thread_task.c:163,1
    - Dst: insert_tasks_between
      Src: /src/dav1d/src/thread_task.c:167,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 4
    argNames:
    - f
    - first
    - last
    - cond_signal
    argTypes:
    - Dav1dFrameContext*
    - Dav1dTask*
    - Dav1dTask*
    - int
    assertStmts:
    - condition: "(first->type == DAV1D_TASK_TYPE_TILE_RECONSTRUCTION ||\n               first->type
        == DAV1D_TASK_TYPE_TILE_ENTROPY)"
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/dav1d/src/thread_task.c
    - condition: (first->type == t_ptr->type)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/dav1d/src/thread_task.c
    - condition: (t_ptr->sby == first->sby)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/dav1d/src/thread_task.c
    - condition: (t_tile_idx != p_tile_idx)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/dav1d/src/thread_task.c
    constantsTouched: []
    func_position:
      end: 168
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 168
    functionName: insert_tasks
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - insert_tasks_between
    - assert
    linkageType: ''
    returnType: void
    signature: "void insert_tasks(Dav1dFrameContext *const f,\n                         Dav1dTask
      *const first, Dav1dTask *const last,\n                         const int cond_signal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_tasks
      Src: /src/dav1d/src/thread_task.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - t
    - cond_signal
    argTypes:
    - Dav1dFrameContext*
    - Dav1dTask*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: insert_task
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - insert_tasks
    linkageType: ''
    returnType: void
    signature: "void insert_task(Dav1dFrameContext *const f,\n                               Dav1dTask
      *const t, const int cond_signal)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:177,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:184,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/thread_task.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - f
    - t
    argTypes:
    - Dav1dFrameContext*
    - Dav1dTask*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: add_pending
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - atomic_store
    linkageType: ''
    returnType: void
    signature: void add_pending(Dav1dFrameContext *const f, Dav1dTask *const t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:189,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:191,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:195,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/thread_task.c:196,1
    - Dst: insert_task
      Src: /src/dav1d/src/thread_task.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - f
    argTypes:
    - Dav1dFrameContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 204
    functionName: merge_pending_frame
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - insert_task
    - pthread_mutex_unlock
    - atomic_load
    - atomic_store
    linkageType: ''
    returnType: int
    signature: int merge_pending_frame(Dav1dFrameContext *const f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merge_pending_frame
      Src: /src/dav1d/src/thread_task.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 6
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: merge_pending
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - merge_pending_frame
    linkageType: ''
    returnType: int
    signature: int merge_pending(const Dav1dContext *const c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_realloc
      Src: /src/dav1d/src/thread_task.c:227,1
    - Dst: memset
      Src: /src/dav1d/src/thread_task.c:229,1
    - Dst: dav1d_realloc
      Src: /src/dav1d/src/thread_task.c:240,1
    - Dst: memset
      Src: /src/dav1d/src/thread_task.c:247,1
    - Dst: memset
      Src: /src/dav1d/src/thread_task.c:248,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - f
    - pass
    - res_t
    argTypes:
    - Dav1dFrameContext*
    - int
    - Dav1dTask**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 266
    functionName: create_filter_sbrow
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - memset
    - atomic_store
    - dav1d_realloc
    linkageType: ''
    returnType: int
    signature: "int create_filter_sbrow(Dav1dFrameContext *const f,\n                               const
      int pass, Dav1dTask **res_t)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_realloc
      Src: /src/dav1d/src/thread_task.c:278,1
    - Dst: memset
      Src: /src/dav1d/src/thread_task.c:280,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:286,1
    - Dst: create_filter_sbrow
      Src: /src/dav1d/src/thread_task.c:289,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:325,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:331,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:332,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:335,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:336,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/thread_task.c:337,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 3
    argNames:
    - f
    - pass
    - cond_signal
    argTypes:
    - Dav1dFrameContext*
    - int
    - int
    assertStmts:
    - condition: (n_tasks <= f->task_thread.num_tile_tasks)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/dav1d/src/thread_task.c
    - condition: (f->task_thread.pending_tasks.head == NULL)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/dav1d/src/thread_task.c
    constantsTouched: []
    func_position:
      end: 340
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 340
    functionName: dav1d_task_create_tile_sbrow
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - create_filter_sbrow
    - dav1d_realloc
    - assert
    - memset
    - pthread_mutex_unlock
    - atomic_store
    linkageType: ''
    returnType: int
    signature: "int dav1d_task_create_tile_sbrow(Dav1dFrameContext *const f, const
      int pass,\n                                 const int cond_signal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:345,1
    - Dst: insert_task
      Src: /src/dav1d/src/thread_task.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - Dav1dFrameContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 342
    functionDepth: 5
    functionLinenumber: 342
    functionLinenumberEnd: 353
    functionName: dav1d_task_frame_init
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 1
    functionsReached:
    - insert_task
    - atomic_store
    linkageType: ''
    returnType: void
    signature: void dav1d_task_frame_init(Dav1dFrameContext *const f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_init
      Src: /src/dav1d/src/thread_task.c:362,1
    - Dst: atomic_init
      Src: /src/dav1d/src/thread_task.c:363,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:364,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:367,1
    - Dst: pthread_cond_wait
      Src: /src/dav1d/src/thread_task.c:369,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/thread_task.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - c
    - out
    - in
    argTypes:
    - Dav1dContext*
    - Dav1dPicture*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 372
    functionName: dav1d_task_delayed_fg
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_cond_wait
    - pthread_cond_signal
    - atomic_init
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: "void dav1d_task_delayed_fg(Dav1dContext *const c, Dav1dPicture *const
      out,\n                           const Dav1dPicture *const in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:381,1
    - Dst: add_pending
      Src: /src/dav1d/src/thread_task.c:386,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - ttd
    - f
    - t
    - type
    - state
    - target
    argTypes:
    - struct TaskThreadData*
    - Dav1dFrameContext*
    - Dav1dTask*
    - enum TaskType
    - atomic_int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 391
    functionName: ensure_progress
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - add_pending
    - atomic_load
    linkageType: ''
    returnType: int
    signature: "int ensure_progress(struct TaskThreadData *const ttd,\n                                  Dav1dFrameContext
      *const f,\n                                  Dav1dTask *const t, const enum
      TaskType type,\n                                  atomic_int *const state, int
      *const target)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:399,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:402,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:404,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:407,1
    - Dst: IS_KEY_OR_INTRA
      Src: /src/dav1d/src/thread_task.c:409,1
    - Dst: imax
      Src: /src/dav1d/src/thread_task.c:429,1
    - Dst: iclip
      Src: /src/dav1d/src/thread_task.c:431,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:433,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:435,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - t
    - f
    - frame_mt
    argTypes:
    - Dav1dTask*
    - Dav1dFrameContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 439
    functionName: check_tile
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - IS_KEY_OR_INTRA
    - imax
    - atomic_fetch_or
    - atomic_load
    - iclip
    linkageType: ''
    returnType: int
    signature: "int check_tile(Dav1dTask *const t, Dav1dFrameContext *const f,\n                             const
      int frame_mt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:444,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:451,1
    - Dst: ctz
      Src: /src/dav1d/src/thread_task.c:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - c
    - f
    argTypes:
    - Dav1dContext*
    - Dav1dFrameContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 457
    functionName: get_frame_progress
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - ctz
    - atomic_load
    linkageType: ''
    returnType: int
    signature: "int get_frame_progress(const Dav1dContext *const c,\n                                     const
      Dav1dFrameContext *const f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:460,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/thread_task.c:460,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:461,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:462,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:463,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:464,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:465,1
    - Dst: dav1d_decode_frame_exit
      Src: /src/dav1d/src/thread_task.c:466,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - f
    - error
    argTypes:
    - Dav1dFrameContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 459
    functionDepth: 5
    functionLinenumber: 459
    functionLinenumberEnd: 469
    functionName: abort_frame
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - pthread_cond_signal
    - DAV1D_ERR
    - dav1d_decode_frame_exit
    - atomic_store
    linkageType: ''
    returnType: void
    signature: void abort_frame(Dav1dFrameContext *const f, const int error)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:484,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:485,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/thread_task.c:486,1
    - Dst: dav1d_prep_grain_8bpc
      Src: /src/dav1d/src/thread_task.c:490,1
    - Dst: dav1d_prep_grain_16bpc
      Src: /src/dav1d/src/thread_task.c:498,1
    - Dst: abort
      Src: /src/dav1d/src/thread_task.c:503,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:506,1
    - Dst: atomic_fetch_add
      Src: /src/dav1d/src/thread_task.c:510,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/thread_task.c:511,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:515,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:517,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/thread_task.c:519,1
    - Dst: dav1d_apply_grain_row_8bpc
      Src: /src/dav1d/src/thread_task.c:524,1
    - Dst: dav1d_apply_grain_row_16bpc
      Src: /src/dav1d/src/thread_task.c:532,1
    - Dst: abort
      Src: /src/dav1d/src/thread_task.c:537,1
    - Dst: atomic_fetch_add
      Src: /src/dav1d/src/thread_task.c:539,1
    - Dst: atomic_fetch_add
      Src: /src/dav1d/src/thread_task.c:540,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:542,1
    - Dst: atomic_fetch_add
      Src: /src/dav1d/src/thread_task.c:544,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:545,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:549,1
    - Dst: abort
      Src: /src/dav1d/src/thread_task.c:552,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 2
    argNames:
    - c
    - ttd
    argTypes:
    - Dav1dContext*
    - struct TaskThreadData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 554
    functionName: delayed_fg_task
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - dav1d_prep_grain_16bpc
    - atomic_fetch_add
    - pthread_cond_signal
    - pthread_mutex_unlock
    - dav1d_prep_grain_8bpc
    - atomic_load
    - abort
    - dav1d_apply_grain_row_8bpc
    - dav1d_apply_grain_row_16bpc
    linkageType: ''
    returnType: void
    signature: "void delayed_fg_task(const Dav1dContext *const c,\n                                   struct
      TaskThreadData *const ttd)"
  - BBCount: 76
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_set_thread_name
      Src: /src/dav1d/src/thread_task.c:561,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:563,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:566,1
    - Dst: merge_pending
      Src: /src/dav1d/src/thread_task.c:568,1
    - Dst: delayed_fg_task
      Src: /src/dav1d/src/thread_task.c:570,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:577,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:579,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:592,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:594,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:601,1
    - Dst: merge_pending_frame
      Src: /src/dav1d/src/thread_task.c:603,1
    - Dst: check_tile
      Src: /src/dav1d/src/thread_task.c:613,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:617,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:618,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:618,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:623,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:625,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:629,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:631,1
    - Dst: insert_task
      Src: /src/dav1d/src/thread_task.c:643,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:648,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:652,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:653,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:655,1
    - Dst: reset_task_cur
      Src: /src/dav1d/src/thread_task.c:666,1
    - Dst: merge_pending
      Src: /src/dav1d/src/thread_task.c:667,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:670,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:672,1
    - Dst: pthread_cond_wait
      Src: /src/dav1d/src/thread_task.c:673,1
    - Dst: reset_task_cur
      Src: /src/dav1d/src/thread_task.c:675,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:689,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:690,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/thread_task.c:691,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:693,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:694,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:701,1
    - Dst: dav1d_decode_frame_init
      Src: /src/dav1d/src/thread_task.c:702,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:703,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:705,1
    - Dst: abort_frame
      Src: /src/dav1d/src/thread_task.c:706,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/thread_task.c:706,1
    - Dst: reset_task_cur
      Src: /src/dav1d/src/thread_task.c:707,1
    - Dst: add_pending
      Src: /src/dav1d/src/thread_task.c:711,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:712,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:717,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/thread_task.c:718,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:719,1
    - Dst: dav1d_decode_frame_init_cdf
      Src: /src/dav1d/src/thread_task.c:720,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:722,1
    - Dst: dav1d_task_create_tile_sbrow
      Src: /src/dav1d/src/thread_task.c:724,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:725,1
    - Dst: abort_frame
      Src: /src/dav1d/src/thread_task.c:727,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/thread_task.c:727,1
    - Dst: reset_task_cur
      Src: /src/dav1d/src/thread_task.c:728,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:729,1
    - Dst: dav1d_decode_tile_sbrow
      Src: /src/dav1d/src/thread_task.c:744,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:748,1
    - Dst: check_tile
      Src: /src/dav1d/src/thread_task.c:752,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:753,1
    - Dst: reset_task_cur_async
      Src: /src/dav1d/src/thread_task.c:754,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:755,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:756,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:759,1
    - Dst: add_pending
      Src: /src/dav1d/src/thread_task.c:760,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:761,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:763,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:764,1
    - Dst: reset_task_cur
      Src: /src/dav1d/src/thread_task.c:765,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:766,1
    - Dst: dav1d_cdf_thread_update
      Src: /src/dav1d/src/thread_task.c:772,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:775,1
    - Dst: atomic_fetch_sub
      Src: /src/dav1d/src/thread_task.c:777,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:778,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:779,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:781,1
    - Dst: dav1d_decode_frame_exit
      Src: /src/dav1d/src/thread_task.c:782,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/thread_task.c:782,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/thread_task.c:783,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:785,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:787,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:787,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:788,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:789,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:794,1
    - Dst: Dav1dFrameContext*::bd_fn::filter_sbrow_deblock_cols
      Src: /src/dav1d/src/thread_task.c:795,1
    - Dst: ensure_progress
      Src: /src/dav1d/src/thread_task.c:796,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:801,1
    - Dst: Dav1dFrameContext*::bd_fn::filter_sbrow_deblock_rows
      Src: /src/dav1d/src/thread_task.c:802,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:807,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:808,1
    - Dst: reset_task_cur_async
      Src: /src/dav1d/src/thread_task.c:810,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:811,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:812,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:814,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:819,1
    - Dst: add_pending
      Src: /src/dav1d/src/thread_task.c:823,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:824,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:832,1
    - Dst: Dav1dFrameContext*::bd_fn::filter_sbrow_cdef
      Src: /src/dav1d/src/thread_task.c:833,1
    - Dst: reset_task_cur_async
      Src: /src/dav1d/src/thread_task.c:834,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:835,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:836,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:841,1
    - Dst: Dav1dFrameContext*::bd_fn::filter_sbrow_resize
      Src: /src/dav1d/src/thread_task.c:842,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:845,1
    - Dst: Dav1dFrameContext*::bd_fn::filter_sbrow_lr
      Src: /src/dav1d/src/thread_task.c:846,1
    - Dst: abort
      Src: /src/dav1d/src/thread_task.c:853,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:860,1
    - Dst: assert
      Src: /src/dav1d/src/thread_task.c:862,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:864,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:865,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:868,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:869,1
    - Dst: atomic_fetch_sub
      Src: /src/dav1d/src/thread_task.c:870,1
    - Dst: reset_task_cur
      Src: /src/dav1d/src/thread_task.c:872,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:875,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:876,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:878,1
    - Dst: dav1d_decode_frame_exit
      Src: /src/dav1d/src/thread_task.c:879,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/thread_task.c:879,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/thread_task.c:880,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:882,1
    - Dst: reset_task_cur
      Src: /src/dav1d/src/thread_task.c:884,1
    - Dst: atomic_fetch_or
      Src: /src/dav1d/src/thread_task.c:888,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:890,1
    - Dst: get_frame_progress
      Src: /src/dav1d/src/thread_task.c:891,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:892,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:895,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/thread_task.c:896,1
    - Dst: atomic_store
      Src: /src/dav1d/src/thread_task.c:898,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/thread_task.c:899,1
    - Dst: atomic_fetch_sub
      Src: /src/dav1d/src/thread_task.c:900,1
    - Dst: reset_task_cur
      Src: /src/dav1d/src/thread_task.c:902,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:905,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:906,1
    - Dst: atomic_load
      Src: /src/dav1d/src/thread_task.c:908,1
    - Dst: dav1d_decode_frame_exit
      Src: /src/dav1d/src/thread_task.c:909,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/thread_task.c:909,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/thread_task.c:910,1
    - Dst: pthread_cond_signal
      Src: /src/dav1d/src/thread_task.c:912,1
    - Dst: reset_task_cur
      Src: /src/dav1d/src/thread_task.c:914,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/thread_task.c:916,1
    CyclomaticComplexity: 121
    EdgeCount: 121
    ICount: 295
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (t->deblock_progress)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/dav1d/src/thread_task.c
    - condition: (c->n_fc > 1)
      pos:
        line_end: 861
        line_start: 861
        source_file: /src/dav1d/src/thread_task.c
    - condition: (!atomic_load(&f->task_thread.done[p]) || error)
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/dav1d/src/thread_task.c
    - condition: (c->n_fc > 1)
      pos:
        line_end: 700
        line_start: 700
        source_file: /src/dav1d/src/thread_task.c
    - condition: (atomic_load(&f->task_thread.task_counter) >= 0)
      pos:
        line_end: 786
        line_start: 786
        source_file: /src/dav1d/src/thread_task.c
    - condition: (c->n_fc > 1)
      pos:
        line_end: 716
        line_start: 716
        source_file: /src/dav1d/src/thread_task.c
    constantsTouched: []
    func_position:
      end: 919
      start: 556
    functionDepth: 7
    functionLinenumber: 556
    functionLinenumberEnd: 919
    functionName: dav1d_worker_task
    functionSourceFile: /src/dav1d/src/thread_task.c
    functionUses: 0
    functionsReached:
    - dav1d_cdf_thread_update
    - Dav1dFrameContext*::bd_fn::filter_sbrow_deblock_cols
    - insert_task
    - dav1d_decode_frame_init_cdf
    - pthread_mutex_unlock
    - reset_task_cur_async
    - atomic_load
    - atomic_fetch_or
    - dav1d_decode_frame_exit
    - atomic_fetch_sub
    - add_pending
    - ensure_progress
    - Dav1dFrameContext*::bd_fn::filter_sbrow_lr
    - abort
    - Dav1dFrameContext*::bd_fn::filter_sbrow_resize
    - DAV1D_ERR
    - Dav1dFrameContext*::bd_fn::filter_sbrow_cdef
    - pthread_mutex_lock
    - pthread_cond_signal
    - delayed_fg_task
    - atomic_store
    - merge_pending
    - merge_pending_frame
    - pthread_cond_wait
    - get_frame_progress
    - assert
    - check_tile
    - Dav1dFrameContext*::bd_fn::filter_sbrow_deblock_rows
    - dav1d_decode_tile_sbrow
    - dav1d_decode_frame_init
    - abort_frame
    - reset_task_cur
    - dav1d_set_thread_name
    - dav1d_task_create_tile_sbrow
    linkageType: ''
    returnType: void
    signature: void *dav1d_worker_task(void *data)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:87,1
    - Dst: assert
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:88,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:126,1
    - Dst: imin
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:135,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:138,1
    - Dst: pixel_set
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:140,1
    - Dst: pixel_set
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:142,1
    - Dst: imin
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:150,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:153,1
    - Dst: pixel_set
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:155,1
    - Dst: pixel_set
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:157,1
    - Dst: imin
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:167,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:168,1
    - Dst: pixel_set
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:170,1
    - Dst: pixel_set
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:172,1
    - Dst: imin
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:180,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:182,1
    - Dst: pixel_set
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:184,1
    - Dst: pixel_set
      Src: /src/dav1d/src/ipred_prepare_tmpl.c:187,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 79
    argCount: 16
    argNames:
    - x
    - have_left
    - y
    - have_top
    - w
    - h
    - edge_flags
    - dst
    - stride
    - prefilter_toplevel_sb_edge
    - mode
    - angle
    - tw
    - th
    - filter_edge
    - topleft_out HIGHBD_DECL_SUFFIX
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - enum EdgeFlags
    - pixel*
    - ptrdiff_t
    - pixel*
    - enum IntraPredMode
    - int*
    - int
    - int
    - int
    - pixel*
    assertStmts:
    - condition: (y < h && x < w)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/dav1d/src/ipred_prepare_tmpl.c
    constantsTouched: []
    func_position:
      end: 204
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 204
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/ipred_prepare_tmpl.c
    functionUses: 0
    functionsReached:
    - imin
    - assert
    - pixel_set
    - pixel_copy
    - PXSTRIDE
    - bitdepth_from_max
    linkageType: ''
    returnType: enum IntraPredMode
    signature: "enum IntraPredMode bytefn(dav1d_prepare_intra_edges)(const int x,
      const int have_left,\n                                  const int y, const int
      have_top,\n                                  const int w, const int h,\n                                  const
      enum EdgeFlags edge_flags,\n                                  const pixel *const
      dst,\n                                  const ptrdiff_t stride,\n                                  const
      pixel *prefilter_toplevel_sb_edge,\n                                  enum IntraPredMode
      mode, int *const angle,\n                                  const int tw, const
      int th, const int filter_edge,\n                                  pixel *const
      topleft_out HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/getbits.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - c
    - data
    - sz
    argTypes:
    - GetBits*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (sz)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/dav1d/src/getbits.c
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: dav1d_init_get_bits
    functionSourceFile: /src/dav1d/src/getbits.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void dav1d_init_get_bits(GetBits *const c, const uint8_t *const data,\n
      \                        const size_t sz)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - GetBits*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: dav1d_get_bit
    functionSourceFile: /src/dav1d/src/getbits.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned dav1d_get_bit(GetBits *const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/getbits.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - GetBits*
    - int
    assertStmts:
    - condition: (c->bits_left >= 0 && c->bits_left < 32)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/dav1d/src/getbits.c
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: refill
    functionSourceFile: /src/dav1d/src/getbits.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void refill(GetBits *const c, const int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - type64
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: GET_BITS
    functionSourceFile: /src/dav1d/src/getbits.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BITS(name, type, type64)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/getbits.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - GetBits*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 112
    functionName: dav1d_get_uleb128
    functionSourceFile: /src/dav1d/src/getbits.c
    functionUses: 0
    functionsReached:
    - dav1d_get_bits
    linkageType: ''
    returnType: unsigned
    signature: unsigned dav1d_get_uleb128(GetBits *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/getbits.c:117,1
    - Dst: ulog2
      Src: /src/dav1d/src/getbits.c:118,1
    - Dst: assert
      Src: /src/dav1d/src/getbits.c:119,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/getbits.c:121,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/getbits.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - max
    argTypes:
    - GetBits*
    - unsigned
    assertStmts:
    - condition: (max > 1)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/dav1d/src/getbits.c
    - condition: (l > 1)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/dav1d/src/getbits.c
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: dav1d_get_uniform
    functionSourceFile: /src/dav1d/src/getbits.c
    functionUses: 0
    functionsReached:
    - ulog2
    - assert
    - dav1d_get_bit
    - dav1d_get_bits
    linkageType: ''
    returnType: unsigned
    signature: unsigned dav1d_get_uniform(GetBits *const c, const unsigned max)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/getbits.c:126,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/getbits.c:133,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/getbits.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - GetBits*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: dav1d_get_vlc
    functionSourceFile: /src/dav1d/src/getbits.c
    functionUses: 0
    functionsReached:
    - dav1d_get_bits
    - dav1d_get_bit
    linkageType: ''
    returnType: unsigned
    signature: unsigned dav1d_get_vlc(GetBits *const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_uniform
      Src: /src/dav1d/src/getbits.c:147,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/getbits.c:151,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/getbits.c:152,1
    - Dst: inv_recenter
      Src: /src/dav1d/src/getbits.c:159,1
    - Dst: inv_recenter
      Src: /src/dav1d/src/getbits.c:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - c
    - ref
    - n
    argTypes:
    - GetBits*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 160
    functionName: get_bits_subexp_u
    functionSourceFile: /src/dav1d/src/getbits.c
    functionUses: 0
    functionsReached:
    - inv_recenter
    - dav1d_get_bits
    - dav1d_get_uniform
    - dav1d_get_bit
    linkageType: ''
    returnType: unsigned
    signature: "unsigned get_bits_subexp_u(GetBits *const c, const unsigned ref,\n
      \                                 const unsigned n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_bits_subexp_u
      Src: /src/dav1d/src/getbits.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - ref
    - n
    argTypes:
    - GetBits*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: dav1d_get_bits_subexp
    functionSourceFile: /src/dav1d/src/getbits.c
    functionUses: 0
    functionsReached:
    - get_bits_subexp_u
    linkageType: ''
    returnType: int
    signature: int dav1d_get_bits_subexp(GetBits *const c, const int ref, const unsigned
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/msac.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - MsacContext*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: dav1d_msac_decode_bools
    functionSourceFile: /src/dav1d/src/msac.h
    functionUses: 2
    functionsReached:
    - dav1d_msac_decode_bool_equi
    linkageType: ''
    returnType: unsigned
    signature: unsigned dav1d_msac_decode_bools(MsacContext *const s, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/msac.h:102,1
    - Dst: ulog2
      Src: /src/dav1d/src/msac.h:103,1
    - Dst: assert
      Src: /src/dav1d/src/msac.h:104,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/msac.h:106,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/msac.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - MsacContext*
    - unsigned
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/dav1d/src/msac.h
    - condition: (l > 1)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/dav1d/src/msac.h
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: dav1d_msac_decode_uniform
    functionSourceFile: /src/dav1d/src/msac.h
    functionUses: 1
    functionsReached:
    - ulog2
    - dav1d_msac_decode_bools
    - assert
    - dav1d_msac_decode_bool_equi
    linkageType: ''
    returnType: int
    signature: int dav1d_msac_decode_uniform(MsacContext *const s, const unsigned
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: dav1d_set_thread_name
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_set_thread_name(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - thread
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: pthread_join
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pthread_join(thread, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - attr
    argTypes:
    - pthread_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: pthread_attr_init
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_attr_init(pthread_attr_t *const attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attr
    argTypes:
    - pthread_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: pthread_attr_destroy
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_attr_destroy(pthread_attr_t *const attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - attr
    - stack_size
    argTypes:
    - pthread_attr_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: pthread_attr_setstacksize
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pthread_attr_setstacksize(pthread_attr_t *const attr,\n                                            const
      size_t stack_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializeSRWLock
      Src: /src/dav1d/src/thread.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mutex
    - attr
    argTypes:
    - pthread_mutex_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: pthread_mutex_init
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 0
    functionsReached:
    - InitializeSRWLock
    linkageType: ''
    returnType: int
    signature: "int pthread_mutex_init(pthread_mutex_t *const mutex,\n                                     const
      void *const attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: pthread_mutex_destroy
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_destroy(pthread_mutex_t *const mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockExclusive
      Src: /src/dav1d/src/thread.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: pthread_mutex_lock
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 9
    functionsReached:
    - AcquireSRWLockExclusive
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_lock(pthread_mutex_t *const mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseSRWLockExclusive
      Src: /src/dav1d/src/thread.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: pthread_mutex_unlock
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 8
    functionsReached:
    - ReleaseSRWLockExclusive
    linkageType: ''
    returnType: int
    signature: int pthread_mutex_unlock(pthread_mutex_t *const mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializeConditionVariable
      Src: /src/dav1d/src/thread.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cond
    - attr
    argTypes:
    - pthread_cond_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: pthread_cond_init
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 0
    functionsReached:
    - InitializeConditionVariable
    linkageType: ''
    returnType: int
    signature: "int pthread_cond_init(pthread_cond_t *const cond,\n                                    const
      void *const attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond
    argTypes:
    - pthread_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: pthread_cond_destroy
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_cond_destroy(pthread_cond_t *const cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SleepConditionVariableSRW
      Src: /src/dav1d/src/thread.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cond
    - mutex
    argTypes:
    - pthread_cond_t*
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: pthread_cond_wait
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 4
    functionsReached:
    - SleepConditionVariableSRW
    linkageType: ''
    returnType: int
    signature: "int pthread_cond_wait(pthread_cond_t *const cond,\n                                    pthread_mutex_t
      *const mutex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WakeConditionVariable
      Src: /src/dav1d/src/thread.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cond
    argTypes:
    - pthread_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: pthread_cond_signal
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 6
    functionsReached:
    - WakeConditionVariable
    linkageType: ''
    returnType: int
    signature: int pthread_cond_signal(pthread_cond_t *const cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WakeAllConditionVariable
      Src: /src/dav1d/src/thread.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cond
    argTypes:
    - pthread_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: pthread_cond_broadcast
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 0
    functionsReached:
    - WakeAllConditionVariable
    linkageType: ''
    returnType: int
    signature: int pthread_cond_broadcast(pthread_cond_t *const cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: dav1d_init_thread
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_init_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prctl
      Src: /src/dav1d/src/thread.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: dav1d_set_thread_name
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 1
    functionsReached:
    - prctl
    linkageType: ''
    returnType: void
    signature: void dav1d_set_thread_name(const char *const name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setname_np
      Src: /src/dav1d/src/thread.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: dav1d_set_thread_name
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 1
    functionsReached:
    - pthread_setname_np
    linkageType: ''
    returnType: void
    signature: void dav1d_set_thread_name(const char *const name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setname_np
      Src: /src/dav1d/src/thread.h:165,1
    - Dst: pthread_self
      Src: /src/dav1d/src/thread.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: dav1d_set_thread_name
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 1
    functionsReached:
    - pthread_self
    - pthread_setname_np
    linkageType: ''
    returnType: void
    signature: void dav1d_set_thread_name(const char *const name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setname_np
      Src: /src/dav1d/src/thread.h:171,1
    - Dst: pthread_self
      Src: /src/dav1d/src/thread.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: dav1d_set_thread_name
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 1
    functionsReached:
    - pthread_self
    - pthread_setname_np
    linkageType: ''
    returnType: void
    signature: void dav1d_set_thread_name(const char *const name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_set_name_np
      Src: /src/dav1d/src/thread.h:177,1
    - Dst: pthread_self
      Src: /src/dav1d/src/thread.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: dav1d_set_thread_name
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 1
    functionsReached:
    - pthread_set_name_np
    - pthread_self
    linkageType: ''
    returnType: void
    signature: void dav1d_set_thread_name(const char *const name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rename_thread
      Src: /src/dav1d/src/thread.h:185,1
    - Dst: find_thread
      Src: /src/dav1d/src/thread.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: dav1d_set_thread_name
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 1
    functionsReached:
    - rename_thread
    - find_thread
    linkageType: ''
    returnType: void
    signature: void dav1d_set_thread_name(const char *const name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: dav1d_set_thread_name
    functionSourceFile: /src/dav1d/src/thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_set_thread_name(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: dav1d_ref_create
    functionSourceFile: /src/dav1d/src/ref.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_ref_create(type, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_init
      Src: /src/dav1d/src/ref.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - ref
    - ptr
    - user_data
    - free_ref
    argTypes:
    - Dav1dRef*
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: dav1d_ref_init
    functionSourceFile: /src/dav1d/src/ref.h
    functionUses: 1
    functionsReached:
    - atomic_init
    linkageType: ''
    returnType: Dav1dRef
    signature: "Dav1dRef *dav1d_ref_init(Dav1dRef *const ref, const void *const ptr,\n
      \                                      void (*const free_callback)(const uint8_t
      *data, void *user_data),\n                                       void *const
      user_data, const int free_ref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add_explicit
      Src: /src/dav1d/src/ref.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - Dav1dRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: dav1d_ref_inc
    functionSourceFile: /src/dav1d/src/ref.h
    functionUses: 4
    functionsReached:
    - atomic_fetch_add_explicit
    linkageType: ''
    returnType: void
    signature: void dav1d_ref_inc(Dav1dRef *const ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/dav1d/src/ref.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - Dav1dRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: dav1d_ref_is_writable
    functionSourceFile: /src/dav1d/src/ref.h
    functionUses: 0
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: int
    signature: int dav1d_ref_is_writable(Dav1dRef *const ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bits
    - state
    argTypes:
    - int
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: get_random_number
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_random_number(const int bits, unsigned *const state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - shift
    argTypes:
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: round2
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int round2(const int x, const uint64_t shift)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/filmgrain_tmpl.c:54,1
    - Dst: get_random_number
      Src: /src/dav1d/src/filmgrain_tmpl.c:62,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:63,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:82,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:83,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - entry[][]
    - Dav1dFilmGrainData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 86
    functionName: generate_grain_y_c
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 0
    functionsReached:
    - iclip
    - get_random_number
    - bitdepth_from_max
    - round2
    linkageType: ''
    returnType: void
    signature: "void generate_grain_y_c(entry buf[][GRAIN_WIDTH],\n                               const
      Dav1dFilmGrainData *const data\n                               HIGHBD_DECL_SUFFIX)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/filmgrain_tmpl.c:94,1
    - Dst: get_random_number
      Src: /src/dav1d/src/filmgrain_tmpl.c:105,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:106,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:132,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:141,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:142,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 6
    argNames:
    - buf
    - buf_y
    - data
    - uv
    - subx
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - entry[][]
    - entry[][]
    - Dav1dFilmGrainData*
    - intptr_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 145
    functionName: generate_grain_uv_c
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 0
    functionsReached:
    - iclip
    - get_random_number
    - bitdepth_from_max
    - round2
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE generate_grain_uv_c(entry buf[][GRAIN_WIDTH],\n                    const
      entry buf_y[][GRAIN_WIDTH],\n                    const Dav1dFilmGrainData *const
      data, const intptr_t uv,\n                    const int subx, const int suby
      HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nm
    - ','
    - ss_x
    - ','
    - ss_y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: gnuv_ss_fn
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnuv_ss_fn(nm, ss_x, ss_y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - grain_lut
    - offsets
    - subx
    - suby
    - bx
    - by
    - x
    - y
    argTypes:
    - entry[][]
    - int[][]
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: sample_lut
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: entry
    signature: "entry sample_lut(const entry grain_lut[][GRAIN_WIDTH],\n                               const
      int offsets[2][2], const int subx, const int suby,\n                               const
      int bx, const int by, const int x, const int y)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/filmgrain_tmpl.c:177,1
    - Dst: assert
      Src: /src/dav1d/src/filmgrain_tmpl.c:198,1
    - Dst: imin
      Src: /src/dav1d/src/filmgrain_tmpl.c:204,1
    - Dst: get_random_number
      Src: /src/dav1d/src/filmgrain_tmpl.c:214,1
    - Dst: imin
      Src: /src/dav1d/src/filmgrain_tmpl.c:217,1
    - Dst: imin
      Src: /src/dav1d/src/filmgrain_tmpl.c:218,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:231,1
    - Dst: add_noise_y
      Src: /src/dav1d/src/filmgrain_tmpl.c:232,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:237,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:238,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:239,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:240,1
    - Dst: add_noise_y
      Src: /src/dav1d/src/filmgrain_tmpl.c:241,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:248,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:249,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:250,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:251,1
    - Dst: add_noise_y
      Src: /src/dav1d/src/filmgrain_tmpl.c:252,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:258,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:259,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:260,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:261,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:264,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:265,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:266,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:267,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:270,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:271,1
    - Dst: add_noise_y
      Src: /src/dav1d/src/filmgrain_tmpl.c:272,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 9
    argNames:
    - dst_row
    - src_row
    - stride
    - data
    - pw
    - scaling
    - grain_lut
    - bh
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - pixel*
    - ptrdiff_t
    - Dav1dFilmGrainData*
    - size_t
    - uint8_t[]
    - entry[][]
    - int
    - int
    assertStmts:
    - condition: (stride % (FG_BLOCK_SIZE * sizeof(pixel)) == 0)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/dav1d/src/filmgrain_tmpl.c
    constantsTouched: []
    func_position:
      end: 276
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 276
    functionName: fgy_32x32xn_c
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 0
    functionsReached:
    - imin
    - get_random_number
    - assert
    - round2
    - iclip
    - bitdepth_from_max
    - add_noise_y
    - sample_lut
    linkageType: ''
    returnType: void
    signature: "void fgy_32x32xn_c(pixel *const dst_row, const pixel *const src_row,\n
      \                         const ptrdiff_t stride,\n                          const
      Dav1dFilmGrainData *const data, const size_t pw,\n                          const
      uint8_t scaling[SCALING_SIZE],\n                          const entry grain_lut[][GRAIN_WIDTH],\n
      \                         const int bh, const int row_num HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - grain
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: add_noise_y
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_noise_y(x, y, grain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/filmgrain_tmpl.c:288,1
    - Dst: assert
      Src: /src/dav1d/src/filmgrain_tmpl.c:309,1
    - Dst: imin
      Src: /src/dav1d/src/filmgrain_tmpl.c:315,1
    - Dst: get_random_number
      Src: /src/dav1d/src/filmgrain_tmpl.c:324,1
    - Dst: imin
      Src: /src/dav1d/src/filmgrain_tmpl.c:327,1
    - Dst: imin
      Src: /src/dav1d/src/filmgrain_tmpl.c:328,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:357,1
    - Dst: add_noise_uv
      Src: /src/dav1d/src/filmgrain_tmpl.c:358,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:363,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:364,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:365,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:366,1
    - Dst: add_noise_uv
      Src: /src/dav1d/src/filmgrain_tmpl.c:367,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:374,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:375,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:376,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:377,1
    - Dst: add_noise_uv
      Src: /src/dav1d/src/filmgrain_tmpl.c:378,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:384,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:385,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:386,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:387,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:390,1
    - Dst: sample_lut
      Src: /src/dav1d/src/filmgrain_tmpl.c:391,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:392,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:393,1
    - Dst: round2
      Src: /src/dav1d/src/filmgrain_tmpl.c:396,1
    - Dst: iclip
      Src: /src/dav1d/src/filmgrain_tmpl.c:397,1
    - Dst: add_noise_uv
      Src: /src/dav1d/src/filmgrain_tmpl.c:398,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 15
    argNames:
    - dst_row
    - src_row
    - stride
    - data
    - pw
    - scaling
    - grain_lut
    - bh
    - row_num
    - luma_row
    - luma_stride
    - uv
    - is_id
    - sx
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - pixel*
    - ptrdiff_t
    - Dav1dFilmGrainData*
    - size_t
    - uint8_t[]
    - entry[][]
    - int
    - int
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (stride % (FG_BLOCK_SIZE * sizeof(pixel)) == 0)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/dav1d/src/filmgrain_tmpl.c
    constantsTouched: []
    func_position:
      end: 402
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 402
    functionName: fguv_32x32xn_c
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 0
    functionsReached:
    - imin
    - get_random_number
    - add_noise_uv
    - assert
    - round2
    - iclip
    - bitdepth_from_max
    - sample_lut
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE fguv_32x32xn_c(pixel *const dst_row, const pixel *const src_row,\n
      \              const ptrdiff_t stride, const Dav1dFilmGrainData *const data,\n
      \              const size_t pw, const uint8_t scaling[SCALING_SIZE],\n               const
      entry grain_lut[][GRAIN_WIDTH], const int bh,\n               const int row_num,
      const pixel *const luma_row,\n               const ptrdiff_t luma_stride, const
      int uv, const int is_id,\n               const int sx, const int sy HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - grain
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 353
    functionName: add_noise_uv
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_noise_uv(x, y, grain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nm
    - ','
    - ss_x
    - ','
    - ss_y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: fguv_ss_fn
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fguv_ss_fn(nm, ss_x, ss_y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: film_grain_dsp_init_arm
      Src: /src/dav1d/src/filmgrain_tmpl.c:436,1
    - Dst: film_grain_dsp_init_x86
      Src: /src/dav1d/src/filmgrain_tmpl.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dFilmGrainDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 441
    functionName: bitfn
    functionSourceFile: /src/dav1d/src/filmgrain_tmpl.c
    functionUses: 5
    functionsReached:
    - film_grain_dsp_init_arm
    - film_grain_dsp_init_x86
    linkageType: ''
    returnType: COLD
    signature: COLD bitfn(dav1d_film_grain_dsp_init)(Dav1dFilmGrainDSPContext *const
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: CDF1
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: CDF2
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF2(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: CDF3
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF3(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: CDF4
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF4(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: CDF5
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF5(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: CDF6
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF6(a,b,c,d,e,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: CDF7
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF7(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: CDF8
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF8(a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: CDF9
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF9(a,b,c,d,e,f,g,h,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: CDF10
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF10(a,b,c,d,e,f,g,h,i,j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: CDF11
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF11(a,b,c,d,e,f,g,h,i,j,k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - ','
    - k
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: CDF12
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF12(a,b,c,d,e,f,g,h,i,j,k,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - ','
    - k
    - ','
    - l
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: CDF13
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF13(a,b,c,d,e,f,g,h,i,j,k,l,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 29
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - ','
    - k
    - ','
    - l
    - ','
    - m
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: CDF14
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF14(a,b,c,d,e,f,g,h,i,j,k,l,m,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 31
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - ','
    - k
    - ','
    - l
    - ','
    - m
    - ','
    - n
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: CDF15
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDF15(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/dav1d/src/cdf.c:3930,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3932,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3933,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3934,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3935,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3936,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3937,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3938,1
    - Dst: update_cdf_4d
      Src: /src/dav1d/src/cdf.c:3939,1
    - Dst: update_cdf_4d
      Src: /src/dav1d/src/cdf.c:3940,1
    - Dst: update_cdf_4d
      Src: /src/dav1d/src/cdf.c:3941,1
    - Dst: update_cdf_4d
      Src: /src/dav1d/src/cdf.c:3942,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3943,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3944,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3946,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3947,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3949,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3950,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3951,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3952,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:3953,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3954,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3955,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:3956,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3957,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:3958,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3959,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3960,1
    - Dst: update_cdf_4d
      Src: /src/dav1d/src/cdf.c:3961,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3962,1
    - Dst: imin
      Src: /src/dav1d/src/cdf.c:3962,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:3963,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3964,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:3965,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:3966,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:3967,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3968,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3969,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3970,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3971,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3972,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3973,1
    - Dst: IS_KEY_OR_INTRA
      Src: /src/dav1d/src/cdf.c:3975,1
    - Dst: memcpy
      Src: /src/dav1d/src/cdf.c:3978,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3981,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3982,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3983,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3984,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3985,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3986,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3987,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3988,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3989,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3990,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3991,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3992,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3993,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3994,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3995,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3996,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:3997,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3998,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:3999,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:4000,1
    - Dst: update_cdf_3d
      Src: /src/dav1d/src/cdf.c:4001,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:4002,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:4003,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:4004,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:4005,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:4008,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:4009,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:4010,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:4011,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:4012,1
    - Dst: update_cdf_2d
      Src: /src/dav1d/src/cdf.c:4013,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:4014,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:4015,1
    - Dst: update_cdf_1d
      Src: /src/dav1d/src/cdf.c:4017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 82
    argCount: 3
    argNames:
    - hdr
    - dst
    - src
    argTypes:
    - Dav1dFrameHeader*
    - CdfContext*
    - CdfContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4018
      start: 3915
    functionDepth: 1
    functionLinenumber: 3915
    functionLinenumberEnd: 4018
    functionName: dav1d_cdf_thread_update
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 2
    functionsReached:
    - memcpy
    - imin
    - IS_KEY_OR_INTRA
    - update_cdf_2d
    - update_cdf_1d
    - update_cdf_4d
    - update_cdf_3d
    linkageType: ''
    returnType: void
    signature: "void dav1d_cdf_thread_update(const Dav1dFrameHeader *const hdr,\n
      \                            CdfContext *const dst,\n                             const
      CdfContext *const src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n1d
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3923
      start: 3919
    functionDepth: 0
    functionLinenumber: 3919
    functionLinenumberEnd: 3923
    functionName: update_cdf_1d
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: update_cdf_1d(n1d, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n1d
    - ','
    - n2d
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3925
      start: 3923
    functionDepth: 0
    functionLinenumber: 3923
    functionLinenumberEnd: 3925
    functionName: update_cdf_2d
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: update_cdf_2d(n1d, n2d, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - n1d
    - ','
    - n2d
    - ','
    - n3d
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3925
    functionDepth: 0
    functionLinenumber: 3925
    functionLinenumberEnd: 3927
    functionName: update_cdf_3d
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: update_cdf_3d(n1d, n2d, n3d, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n1d
    - ','
    - n2d
    - ','
    - n3d
    - ','
    - n4d
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3929
      start: 3927
    functionDepth: 0
    functionLinenumber: 3927
    functionLinenumberEnd: 3929
    functionName: update_cdf_4d
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: update_cdf_4d(n1d, n2d, n3d, n4d, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cdf
    - qidx
    argTypes:
    - CdfThreadContext*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4026
      start: 4023
    functionDepth: 0
    functionLinenumber: 4023
    functionLinenumberEnd: 4026
    functionName: dav1d_cdf_thread_init_static
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dav1d_cdf_thread_init_static(CdfThreadContext *const cdf, const
      unsigned qidx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/dav1d/src/cdf.c:4030,1
    - Dst: memcpy
      Src: /src/dav1d/src/cdf.c:4033,1
    - Dst: memcpy
      Src: /src/dav1d/src/cdf.c:4035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - CdfContext*
    - CdfThreadContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4038
      start: 4028
    functionDepth: 0
    functionLinenumber: 4028
    functionLinenumberEnd: 4038
    functionName: dav1d_cdf_thread_copy
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void dav1d_cdf_thread_copy(CdfContext *const dst, const CdfThreadContext
      *const src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_ref_create_using_pool
      Src: /src/dav1d/src/cdf.c:4043,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/cdf.c:4045,1
    - Dst: atomic_init
      Src: /src/dav1d/src/cdf.c:4049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - c
    - cdf
    - have_frame_mt
    argTypes:
    - Dav1dContext*
    - CdfThreadContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4040
    functionDepth: 2
    functionLinenumber: 4040
    functionLinenumberEnd: 4052
    functionName: dav1d_cdf_thread_alloc
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 1
    functionsReached:
    - DAV1D_ERR
    - dav1d_ref_create_using_pool
    - atomic_init
    linkageType: ''
    returnType: int
    signature: "int dav1d_cdf_thread_alloc(Dav1dContext *const c, CdfThreadContext
      *const cdf,\n                           const int have_frame_mt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/cdf.c:4059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - CdfThreadContext*
    - CdfThreadContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4060
      start: 4054
    functionDepth: 1
    functionLinenumber: 4054
    functionLinenumberEnd: 4060
    functionName: dav1d_cdf_thread_ref
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 1
    functionsReached:
    - dav1d_ref_inc
    linkageType: ''
    returnType: void
    signature: "void dav1d_cdf_thread_ref(CdfThreadContext *const dst,\n                          CdfThreadContext
      *const src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/dav1d/src/cdf.c:4063,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/cdf.c:4064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cdf
    argTypes:
    - CdfThreadContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4065
      start: 4062
    functionDepth: 2
    functionLinenumber: 4062
    functionLinenumberEnd: 4065
    functionName: dav1d_cdf_thread_unref
    functionSourceFile: /src/dav1d/src/cdf.c
    functionUses: 2
    functionsReached:
    - memset
    - dav1d_ref_dec
    linkageType: ''
    returnType: void
    signature: void dav1d_cdf_thread_unref(CdfThreadContext *const cdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - bs
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: II_MASK
    functionSourceFile: /src/dav1d/src/wedge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: II_MASK(c, bs, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - bs
    - ','
    - sign
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: WEDGE_MASK
    functionSourceFile: /src/dav1d/src/wedge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEDGE_MASK(c, bs, sign, idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/mem.c:62,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/mem.c:72,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/mem.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - type
    - ptr
    - sz
    - align
    argTypes:
    - enum AllocationType
    - char*
    - size_t
    - size_t
    assertStmts:
    - condition: (align >= sizeof(Dav1dAllocationData))
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/dav1d/src/mem.c
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: track_alloc
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - assert
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: "void *track_alloc(const enum AllocationType type, char *ptr,\n                         const
      size_t sz, const size_t align)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/mem.c:90,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/mem.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: track_free
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void *track_free(char *const ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/mem.c:99,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/mem.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum AllocationType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: dav1d_track_reuse
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void dav1d_track_reuse(const enum AllocationType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/dav1d/src/mem.c:105,1
    - Dst: track_alloc
      Src: /src/dav1d/src/mem.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - sz
    argTypes:
    - enum AllocationType
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: dav1d_malloc
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 2
    functionsReached:
    - track_alloc
    - malloc
    linkageType: ''
    returnType: void
    signature: void *dav1d_malloc(const enum AllocationType type, const size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_alloc_aligned_internal
      Src: /src/dav1d/src/mem.c:112,1
    - Dst: track_alloc
      Src: /src/dav1d/src/mem.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - sz
    - align
    argTypes:
    - enum AllocationType
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: dav1d_alloc_aligned
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 3
    functionsReached:
    - track_alloc
    - dav1d_alloc_aligned_internal
    linkageType: ''
    returnType: void
    signature: "void *dav1d_alloc_aligned(const enum AllocationType type,\n                          const
      size_t sz, const size_t align)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/mem.c:120,1
    - Dst: realloc
      Src: /src/dav1d/src/mem.c:121,1
    - Dst: track_free
      Src: /src/dav1d/src/mem.c:123,1
    - Dst: track_alloc
      Src: /src/dav1d/src/mem.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - type
    - ptr
    - sz
    argTypes:
    - enum AllocationType
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: dav1d_realloc
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 2
    functionsReached:
    - track_alloc
    - dav1d_malloc
    - track_free
    - realloc
    linkageType: ''
    returnType: void
    signature: "void *dav1d_realloc(const enum AllocationType type,\n                    void
      *ptr, const size_t sz)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/dav1d/src/mem.c:129,1
    - Dst: track_free
      Src: /src/dav1d/src/mem.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: dav1d_free
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 4
    functionsReached:
    - track_free
    - free
    linkageType: ''
    returnType: void
    signature: void dav1d_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_free_aligned_internal
      Src: /src/dav1d/src/mem.c:134,1
    - Dst: track_free
      Src: /src/dav1d/src/mem.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: dav1d_free_aligned
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 3
    functionsReached:
    - dav1d_free_aligned_internal
    - track_free
    linkageType: ''
    returnType: void
    signature: void dav1d_free_aligned(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: cmp_stats
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: COLD
    signature: COLD cmp_stats(const void *const a, const void *const b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/dav1d/src/mem.c:147,1
    - Dst: format_tsep
      Src: /src/dav1d/src/mem.c:149,1
    - Dst: assert
      Src: /src/dav1d/src/mem.c:150,1
    - Dst: snprintf
      Src: /src/dav1d/src/mem.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - n
    - value
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts:
    - condition: ((size_t)len < n)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/dav1d/src/mem.c
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: format_tsep
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 1
    functionsReached:
    - assert
    - format_tsep
    - snprintf
    linkageType: ''
    returnType: COLD
    signature: COLD format_tsep(char *const s, const size_t n, const size_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/mem.c:183,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/mem.c:192,1
    - Dst: qsort
      Src: /src/dav1d/src/mem.c:195,1
    - Dst: format_tsep
      Src: /src/dav1d/src/mem.c:199,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/mem.c:201,1
    - Dst: format_tsep
      Src: /src/dav1d/src/mem.c:208,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/mem.c:209,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/mem.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 216
    functionName: dav1d_log_alloc_stats
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - qsort
    - pthread_mutex_unlock
    - dav1d_log
    - format_tsep
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_log_alloc_stats(Dav1dContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/mem.c:220,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/mem.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pool
    argTypes:
    - Dav1dMemPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: mem_pool_destroy
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - dav1d_free
    linkageType: ''
    returnType: COLD
    signature: COLD mem_pool_destroy(Dav1dMemPool *const pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/mem.c:225,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/mem.c:231,1
    - Dst: assert
      Src: /src/dav1d/src/mem.c:232,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/mem.c:234,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/mem.c:235,1
    - Dst: mem_pool_destroy
      Src: /src/dav1d/src/mem.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pool
    - ptr
    argTypes:
    - Dav1dMemPool*
    - void*
    assertStmts:
    - condition: (ref_cnt > 0)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/dav1d/src/mem.c
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 238
    functionName: dav1d_mem_pool_push
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 4
    functionsReached:
    - pthread_mutex_lock
    - mem_pool_destroy
    - dav1d_free_aligned
    - assert
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void dav1d_mem_pool_push(Dav1dMemPool *const pool, void *const ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/mem.c:241,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/mem.c:247,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/mem.c:250,1
    - Dst: dav1d_track_reuse
      Src: /src/dav1d/src/mem.c:254,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/mem.c:257,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/mem.c:259,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/mem.c:261,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/mem.c:263,1
    - Dst: mem_pool_destroy
      Src: /src/dav1d/src/mem.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - pool
    - size
    argTypes:
    - Dav1dMemPool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: dav1d_mem_pool_pop
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_lock
    - mem_pool_destroy
    - dav1d_free_aligned
    - dav1d_alloc_aligned
    - pthread_mutex_unlock
    - dav1d_track_reuse
    linkageType: ''
    returnType: void
    signature: void *dav1d_mem_pool_pop(Dav1dMemPool *const pool, const size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/mem.c:276,1
    - Dst: pthread_mutex_init
      Src: /src/dav1d/src/mem.c:279,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/mem.c:289,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/mem.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - type
    - ppool
    argTypes:
    - enum AllocationType
    - Dav1dMemPool**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 293
    functionName: dav1d_mem_pool_init
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 0
    functionsReached:
    - dav1d_malloc
    - DAV1D_ERR
    - dav1d_free
    - pthread_mutex_init
    linkageType: ''
    returnType: COLD
    signature: "COLD dav1d_mem_pool_init(const enum AllocationType type,\n                             Dav1dMemPool
      **const ppool)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/mem.c:297,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/mem.c:302,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/mem.c:307,1
    - Dst: mem_pool_destroy
      Src: /src/dav1d/src/mem.c:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pool
    argTypes:
    - Dav1dMemPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 311
    functionName: dav1d_mem_pool_end
    functionSourceFile: /src/dav1d/src/mem.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - dav1d_free_aligned
    - pthread_mutex_unlock
    - mem_pool_destroy
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_mem_pool_end(Dav1dMemPool *const pool)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:54,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/lf_apply_tmpl.c:61,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:61,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:62,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/lf_apply_tmpl.c:63,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:63,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:64,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/lf_apply_tmpl.c:65,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:65,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:66,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/lf_apply_tmpl.c:67,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:67,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:68,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:70,1
    - Dst: Dav1dFrameContext*::dsp::mc::resize
      Src: /src/dav1d/src/lf_apply_tmpl.c:76,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:81,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:82,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/lf_apply_tmpl.c:84,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:84,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:85,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/lf_apply_tmpl.c:92,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:92,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:94,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:95,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 13
    argNames:
    - f
    - dst
    - dst_stride
    - src
    - src_stride
    - ss_ver
    - sb128
    - row
    - row_h
    - src_w
    - h
    - ss_hor
    - lr_backup
    argTypes:
    - Dav1dFrameContext*
    - pixel*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 102
    functionName: backup_lpf
    functionSourceFile: /src/dav1d/src/lf_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - Dav1dFrameContext*::dsp::mc::resize
    - pixel_copy
    linkageType: ''
    returnType: void
    signature: "void backup_lpf(const Dav1dFrameContext *const f,\n                       pixel
      *dst, const ptrdiff_t dst_stride,\n                       const pixel *src,
      const ptrdiff_t src_stride,\n                       const int ss_ver, const
      int sb128,\n                       int row, const int row_h, const int src_w,\n
      \                      const int h, const int ss_hor, const int lr_backup)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:114,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:115,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:116,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:125,1
    - Dst: backup_lpf
      Src: /src/dav1d/src/lf_apply_tmpl.c:128,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:129,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:132,1
    - Dst: backup_lpf
      Src: /src/dav1d/src/lf_apply_tmpl.c:133,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:134,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:145,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:148,1
    - Dst: backup_lpf
      Src: /src/dav1d/src/lf_apply_tmpl.c:151,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:152,1
    - Dst: backup_lpf
      Src: /src/dav1d/src/lf_apply_tmpl.c:156,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:157,1
    - Dst: backup_lpf
      Src: /src/dav1d/src/lf_apply_tmpl.c:163,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:164,1
    - Dst: backup_lpf
      Src: /src/dav1d/src/lf_apply_tmpl.c:168,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:169,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 22
    argCount: 3
    argNames:
    - f
    - src
    - sby
    argTypes:
    - Dav1dFrameContext*
    - pixel*[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 174
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/lf_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - imin
    - backup_lpf
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_copy_lpf)(Dav1dFrameContext *const f,\n                            /*const*/
      pixel *const src[3], const int sby)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 10
    argNames:
    - f
    - have_left
    - (*lvl)
    - b4_stride
    - (*const mask)
    - dst
    - ls
    - w
    - starty4
    - endy4
    argTypes:
    - Dav1dFrameContext*
    - int
    - uint8_t[]
    - ptrdiff_t
    - uint16_t[][]
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 210
    functionName: filter_plane_cols_y
    functionSourceFile: /src/dav1d/src/lf_apply_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void filter_plane_cols_y(const Dav1dFrameContext *const f,\n                                       const
      int have_left,\n                                       const uint8_t (*lvl)[4],\n
      \                                      const ptrdiff_t b4_stride,\n                                       const
      uint16_t (*const mask)[3][2],\n                                       pixel
      *dst, const ptrdiff_t ls,\n                                       const int
      w,\n                                       const int starty4, const int endy4)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 10
    argNames:
    - f
    - have_top
    - (*lvl)
    - b4_stride
    - (*const mask)
    - dst
    - ls
    - w
    - starty4
    - endy4
    argTypes:
    - Dav1dFrameContext*
    - int
    - uint8_t[]
    - ptrdiff_t
    - uint16_t[][]
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 240
    functionName: filter_plane_rows_y
    functionSourceFile: /src/dav1d/src/lf_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    linkageType: ''
    returnType: void
    signature: "void filter_plane_rows_y(const Dav1dFrameContext *const f,\n                                       const
      int have_top,\n                                       const uint8_t (*lvl)[4],\n
      \                                      const ptrdiff_t b4_stride,\n                                       const
      uint16_t (*const mask)[3][2],\n                                       pixel
      *dst, const ptrdiff_t ls,\n                                       const int
      w,\n                                       const int starty4, const int endy4)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 12
    argNames:
    - f
    - have_left
    - (*lvl)
    - b4_stride
    - (*const mask)
    - u
    - v
    - ls
    - w
    - starty4
    - endy4
    - ss_ver
    argTypes:
    - Dav1dFrameContext*
    - int
    - uint8_t[]
    - ptrdiff_t
    - uint16_t[][]
    - pixel*
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 277
    functionName: filter_plane_cols_uv
    functionSourceFile: /src/dav1d/src/lf_apply_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void filter_plane_cols_uv(const Dav1dFrameContext *const f,\n                                        const
      int have_left,\n                                        const uint8_t (*lvl)[4],\n
      \                                       const ptrdiff_t b4_stride,\n                                        const
      uint16_t (*const mask)[2][2],\n                                        pixel
      *const u, pixel *const v,\n                                        const ptrdiff_t
      ls, const int w,\n                                        const int starty4,
      const int endy4,\n                                        const int ss_ver)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lf_apply_tmpl.c:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 12
    argNames:
    - f
    - have_top
    - (*lvl)
    - b4_stride
    - (*const mask)
    - u
    - v
    - ls
    - w
    - starty4
    - endy4
    - ss_hor
    argTypes:
    - Dav1dFrameContext*
    - int
    - uint8_t[]
    - ptrdiff_t
    - uint16_t[][]
    - pixel*
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 311
    functionName: filter_plane_rows_uv
    functionSourceFile: /src/dav1d/src/lf_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    linkageType: ''
    returnType: void
    signature: "void filter_plane_rows_uv(const Dav1dFrameContext *const f,\n                                        const
      int have_top,\n                                        const uint8_t (*lvl)[4],\n
      \                                       const ptrdiff_t b4_stride,\n                                        const
      uint16_t (*const mask)[2][2],\n                                        pixel
      *const u, pixel *const v,\n                                        const ptrdiff_t
      ls, const int w,\n                                        const int starty4,
      const int endy4,\n                                        const int ss_hor)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:328,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:349,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:362,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:376,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:385,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:397,1
    - Dst: filter_plane_cols_y
      Src: /src/dav1d/src/lf_apply_tmpl.c:408,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:410,1
    - Dst: filter_plane_cols_uv
      Src: /src/dav1d/src/lf_apply_tmpl.c:421,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:424,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 5
    argNames:
    - f
    - p
    - lflvl
    - sby
    - start_of_tile_row
    argTypes:
    - Dav1dFrameContext*
    - pixel*[]
    - Av1Filter*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 427
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/lf_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - filter_plane_cols_y
    - filter_plane_cols_uv
    - imin
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_loopfilter_sbrow_cols)(const Dav1dFrameContext *const
      f,\n                                         pixel *const p[3], Av1Filter *const
      lflvl,\n                                         int sby, const int start_of_tile_row)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:441,1
    - Dst: filter_plane_rows_y
      Src: /src/dav1d/src/lf_apply_tmpl.c:447,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:449,1
    - Dst: filter_plane_rows_uv
      Src: /src/dav1d/src/lf_apply_tmpl.c:460,1
    - Dst: imin
      Src: /src/dav1d/src/lf_apply_tmpl.c:463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - f
    - p
    - lflvl
    - sby
    argTypes:
    - Dav1dFrameContext*
    - pixel*[]
    - Av1Filter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 466
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/lf_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - imin
    - filter_plane_rows_y
    - filter_plane_rows_uv
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_loopfilter_sbrow_rows)(const Dav1dFrameContext *const
      f,\n                                         pixel *const p[3], Av1Filter *const
      lflvl,\n                                         int sby)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: array_decl
    functionSourceFile: /src/dav1d/src/fg_apply.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_decl(type, name, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: array_decl
    functionSourceFile: /src/dav1d/src/fg_apply.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_decl(type, name, sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:44,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:50,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:57,1
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:61,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:66,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - dst
    - stride
    - width
    - height
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    assertStmts:
    - condition: (dc <= 0xff)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/dav1d/src/ipred_tmpl.c
    - condition: (dc <= bitdepth_max)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/dav1d/src/ipred_tmpl.c
    constantsTouched: []
    func_position:
      end: 69
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 69
    functionName: splat_dc
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - assert
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE splat_dc(pixel *dst, const ptrdiff_t stride,\n         const
      int width, const int height, const int dc HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iclip_pixel
      Src: /src/dav1d/src/ipred_tmpl.c:79,1
    - Dst: apply_sign
      Src: /src/dav1d/src/ipred_tmpl.c:79,1
    - Dst: abs
      Src: /src/dav1d/src/ipred_tmpl.c:79,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - dst
    - stride
    - width
    - height
    - dc
    - ac
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: cfl_pred
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - iclip_pixel
    - apply_sign
    - abs
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE cfl_pred(pixel *dst, const ptrdiff_t stride,\n         const
      int width, const int height, const int dc,\n         const int16_t *ac, const
      int alpha HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ctz
      Src: /src/dav1d/src/ipred_tmpl.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - topleft
    - width
    argTypes:
    - pixel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: dc_gen_top
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - ctz
    linkageType: ''
    returnType: unsigned
    signature: unsigned dc_gen_top(const pixel *const topleft, const int width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splat_dc
      Src: /src/dav1d/src/ipred_tmpl.c:99,1
    - Dst: dc_gen_top
      Src: /src/dav1d/src/ipred_tmpl.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - a
    - max_width
    - "max_height\n                           HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: ipred_dc_top_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - splat_dc
    - dc_gen_top
    linkageType: ''
    returnType: void
    signature: "void ipred_dc_top_c(pixel *dst, const ptrdiff_t stride,\n                           const
      pixel *const topleft,\n                           const int width, const int
      height, const int a,\n                           const int max_width, const
      int max_height\n                           HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - ac
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: ipred_cfl_top_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ipred_cfl_top_c(pixel *dst, const ptrdiff_t stride,\n                            const
      pixel *const topleft,\n                            const int width, const int
      height,\n                            const int16_t *ac, const int alpha\n                            HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ctz
      Src: /src/dav1d/src/ipred_tmpl.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - topleft
    - height
    argTypes:
    - pixel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: dc_gen_left
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - ctz
    linkageType: ''
    returnType: unsigned
    signature: unsigned dc_gen_left(const pixel *const topleft, const int height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splat_dc
      Src: /src/dav1d/src/ipred_tmpl.c:126,1
    - Dst: dc_gen_left
      Src: /src/dav1d/src/ipred_tmpl.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - a
    - max_width
    - "max_height\n                            HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: ipred_dc_left_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - splat_dc
    - dc_gen_left
    linkageType: ''
    returnType: void
    signature: "void ipred_dc_left_c(pixel *dst, const ptrdiff_t stride,\n                            const
      pixel *const topleft,\n                            const int width, const int
      height, const int a,\n                            const int max_width, const
      int max_height\n                            HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dc_gen_left
      Src: /src/dav1d/src/ipred_tmpl.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - ac
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: ipred_cfl_left_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - dc_gen_left
    linkageType: ''
    returnType: void
    signature: "void ipred_cfl_left_c(pixel *dst, const ptrdiff_t stride,\n                             const
      pixel *const topleft,\n                             const int width, const int
      height,\n                             const int16_t *ac, const int alpha\n                             HIGHBD_DECL_SUFFIX)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ctz
      Src: /src/dav1d/src/ipred_tmpl.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - topleft
    - width
    - height
    argTypes:
    - pixel*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: dc_gen
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - ctz
    linkageType: ''
    returnType: unsigned
    signature: "unsigned dc_gen(const pixel *const topleft,\n                       const
      int width, const int height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: splat_dc
      Src: /src/dav1d/src/ipred_tmpl.c:174,1
    - Dst: dc_gen
      Src: /src/dav1d/src/ipred_tmpl.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - a
    - max_width
    - "max_height\n                       HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: ipred_dc_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - splat_dc
    - dc_gen
    linkageType: ''
    returnType: void
    signature: "void ipred_dc_c(pixel *dst, const ptrdiff_t stride,\n                       const
      pixel *const topleft,\n                       const int width, const int height,
      const int a,\n                       const int max_width, const int max_height\n
      \                      HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dc_gen
      Src: /src/dav1d/src/ipred_tmpl.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - ac
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: ipred_cfl_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - dc_gen
    linkageType: ''
    returnType: void
    signature: "void ipred_cfl_c(pixel *dst, const ptrdiff_t stride,\n                        const
      pixel *const topleft,\n                        const int width, const int height,\n
      \                       const int16_t *ac, const int alpha\n                        HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - a
    - max_width
    - "max_height\n                           HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: ipred_dc_128_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ipred_dc_128_c(pixel *dst, const ptrdiff_t stride,\n                           const
      pixel *const topleft,\n                           const int width, const int
      height, const int a,\n                           const int max_width, const
      int max_height\n                           HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - ac
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: ipred_cfl_128_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ipred_cfl_128_c(pixel *dst, const ptrdiff_t stride,\n                            const
      pixel *const topleft,\n                            const int width, const int
      height,\n                            const int16_t *ac, const int alpha\n                            HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pixel_copy
      Src: /src/dav1d/src/ipred_tmpl.c:227,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - a
    - max_width
    - "max_height\n                      HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: ipred_v_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - pixel_copy
    linkageType: ''
    returnType: void
    signature: "void ipred_v_c(pixel *dst, const ptrdiff_t stride,\n                      const
      pixel *const topleft,\n                      const int width, const int height,
      const int a,\n                      const int max_width, const int max_height\n
      \                     HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pixel_set
      Src: /src/dav1d/src/ipred_tmpl.c:239,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - a
    - max_width
    - "max_height\n                      HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 242
    functionName: ipred_h_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - pixel_set
    linkageType: ''
    returnType: void
    signature: "void ipred_h_c(pixel *dst, const ptrdiff_t stride,\n                      const
      pixel *const topleft,\n                      const int width, const int height,
      const int a,\n                      const int max_width, const int max_height\n
      \                     HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/dav1d/src/ipred_tmpl.c:256,1
    - Dst: abs
      Src: /src/dav1d/src/ipred_tmpl.c:257,1
    - Dst: abs
      Src: /src/dav1d/src/ipred_tmpl.c:258,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 8
    argNames:
    - dst
    - stride
    - tl_ptr
    - width
    - height
    - a
    - max_width
    - "max_height\n                          HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 265
    functionName: ipred_paeth_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - abs
    linkageType: ''
    returnType: void
    signature: "void ipred_paeth_c(pixel *dst, const ptrdiff_t stride,\n                          const
      pixel *const tl_ptr,\n                          const int width, const int height,
      const int a,\n                          const int max_width, const int max_height\n
      \                         HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - a
    - max_width
    - "max_height\n                           HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 287
    functionName: ipred_smooth_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    linkageType: ''
    returnType: void
    signature: "void ipred_smooth_c(pixel *dst, const ptrdiff_t stride,\n                           const
      pixel *const topleft,\n                           const int width, const int
      height, const int a,\n                           const int max_width, const
      int max_height\n                           HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - a
    - max_width
    - "max_height\n                             HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 306
    functionName: ipred_smooth_v_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    linkageType: ''
    returnType: void
    signature: "void ipred_smooth_v_c(pixel *dst, const ptrdiff_t stride,\n                             const
      pixel *const topleft,\n                             const int width, const int
      height, const int a,\n                             const int max_width, const
      int max_height\n                             HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft
    - width
    - height
    - a
    - max_width
    - "max_height\n                             HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 325
    functionName: ipred_smooth_h_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    linkageType: ''
    returnType: void
    signature: "void ipred_smooth_h_c(pixel *dst, const ptrdiff_t stride,\n                             const
      pixel *const topleft,\n                             const int width, const int
      height, const int a,\n                             const int max_width, const
      int max_height\n                             HIGHBD_DECL_SUFFIX)"
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 3
    argNames:
    - wh
    - angle
    - is_sm
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 360
    functionName: get_filter_strength
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE get_filter_strength(const int wh, const int angle,\n                                        const
      int is_sm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:373,1
    - Dst: imin
      Src: /src/dav1d/src/ipred_tmpl.c:375,1
    - Dst: iclip
      Src: /src/dav1d/src/ipred_tmpl.c:376,1
    - Dst: imin
      Src: /src/dav1d/src/ipred_tmpl.c:377,1
    - Dst: iclip
      Src: /src/dav1d/src/ipred_tmpl.c:380,1
    - Dst: iclip
      Src: /src/dav1d/src/ipred_tmpl.c:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 8
    argNames:
    - out
    - sz
    - lim_from
    - lim_to
    - in
    - from
    - to
    - strength
    argTypes:
    - pixel*
    - int
    - int
    - int
    - pixel*
    - int
    - int
    - int
    assertStmts:
    - condition: (strength > 0)
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/dav1d/src/ipred_tmpl.c
    constantsTouched: []
    func_position:
      end: 385
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 385
    functionName: filter_edge
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - iclip
    - imin
    - assert
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE filter_edge(pixel *const out, const int sz,\n                                 const
      int lim_from, const int lim_to,\n                                 const pixel
      *const in, const int from,\n                                 const int to, const
      int strength)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - wh
    - angle
    - is_sm
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: get_upsample
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_upsample(const int wh, const int angle, const int is_sm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iclip
      Src: /src/dav1d/src/ipred_tmpl.c:398,1
    - Dst: iclip
      Src: /src/dav1d/src/ipred_tmpl.c:402,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/ipred_tmpl.c:403,1
    - Dst: iclip
      Src: /src/dav1d/src/ipred_tmpl.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - out
    - hsz
    - in
    - from
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - int
    - pixel*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 406
    functionName: upsample_edge
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - iclip
    - iclip_pixel
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE upsample_edge(pixel *const out, const int hsz,\n                                   const
      pixel *const in, const int from,\n                                   const int
      to HIGHBD_DECL_SUFFIX)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:417,1
    - Dst: get_upsample
      Src: /src/dav1d/src/ipred_tmpl.c:423,1
    - Dst: upsample_edge
      Src: /src/dav1d/src/ipred_tmpl.c:425,1
    - Dst: imin
      Src: /src/dav1d/src/ipred_tmpl.c:426,1
    - Dst: get_filter_strength
      Src: /src/dav1d/src/ipred_tmpl.c:432,1
    - Dst: filter_edge
      Src: /src/dav1d/src/ipred_tmpl.c:434,1
    - Dst: imin
      Src: /src/dav1d/src/ipred_tmpl.c:435,1
    - Dst: imin
      Src: /src/dav1d/src/ipred_tmpl.c:441,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:446,1
    - Dst: pixel_set
      Src: /src/dav1d/src/ipred_tmpl.c:455,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft_in
    - width
    - height
    - angle
    - max_width
    - "max_height\n                       HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (angle < 90)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/dav1d/src/ipred_tmpl.c
    constantsTouched: []
    func_position:
      end: 460
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 460
    functionName: ipred_z1_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - imin
    - upsample_edge
    - get_filter_strength
    - assert
    - pixel_set
    - PXSTRIDE
    - filter_edge
    - get_upsample
    linkageType: ''
    returnType: void
    signature: "void ipred_z1_c(pixel *dst, const ptrdiff_t stride,\n                       const
      pixel *const topleft_in,\n                       const int width, const int
      height, int angle,\n                       const int max_width, const int max_height\n
      \                      HIGHBD_DECL_SUFFIX)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:471,1
    - Dst: get_upsample
      Src: /src/dav1d/src/ipred_tmpl.c:475,1
    - Dst: get_upsample
      Src: /src/dav1d/src/ipred_tmpl.c:477,1
    - Dst: upsample_edge
      Src: /src/dav1d/src/ipred_tmpl.c:482,1
    - Dst: get_filter_strength
      Src: /src/dav1d/src/ipred_tmpl.c:487,1
    - Dst: filter_edge
      Src: /src/dav1d/src/ipred_tmpl.c:490,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/ipred_tmpl.c:494,1
    - Dst: upsample_edge
      Src: /src/dav1d/src/ipred_tmpl.c:498,1
    - Dst: get_filter_strength
      Src: /src/dav1d/src/ipred_tmpl.c:503,1
    - Dst: filter_edge
      Src: /src/dav1d/src/ipred_tmpl.c:506,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/ipred_tmpl.c:510,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:518,1
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:532,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft_in
    - width
    - height
    - angle
    - max_width
    - "max_height\n                       HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (angle > 90 && angle < 180)
      pos:
        line_end: 470
        line_start: 470
        source_file: /src/dav1d/src/ipred_tmpl.c
    - condition: (base_y >= -(1 + upsample_left))
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/dav1d/src/ipred_tmpl.c
    constantsTouched: []
    func_position:
      end: 540
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 540
    functionName: ipred_z2_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - upsample_edge
    - get_filter_strength
    - assert
    - pixel_copy
    - PXSTRIDE
    - filter_edge
    - get_upsample
    linkageType: ''
    returnType: void
    signature: "void ipred_z2_c(pixel *dst, const ptrdiff_t stride,\n                       const
      pixel *const topleft_in,\n                       const int width, const int
      height, int angle,\n                       const int max_width, const int max_height\n
      \                      HIGHBD_DECL_SUFFIX)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:551,1
    - Dst: get_upsample
      Src: /src/dav1d/src/ipred_tmpl.c:557,1
    - Dst: upsample_edge
      Src: /src/dav1d/src/ipred_tmpl.c:559,1
    - Dst: imax
      Src: /src/dav1d/src/ipred_tmpl.c:561,1
    - Dst: get_filter_strength
      Src: /src/dav1d/src/ipred_tmpl.c:568,1
    - Dst: filter_edge
      Src: /src/dav1d/src/ipred_tmpl.c:571,1
    - Dst: imax
      Src: /src/dav1d/src/ipred_tmpl.c:573,1
    - Dst: imin
      Src: /src/dav1d/src/ipred_tmpl.c:579,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:590,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:593,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft_in
    - width
    - height
    - angle
    - max_width
    - "max_height\n                       HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (angle > 180)
      pos:
        line_end: 550
        line_start: 550
        source_file: /src/dav1d/src/ipred_tmpl.c
    constantsTouched: []
    func_position:
      end: 599
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 599
    functionName: ipred_z3_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - imin
    - upsample_edge
    - get_filter_strength
    - assert
    - imax
    - PXSTRIDE
    - filter_edge
    - get_upsample
    linkageType: ''
    returnType: void
    signature: "void ipred_z3_c(pixel *dst, const ptrdiff_t stride,\n                       const
      pixel *const topleft_in,\n                       const int width, const int
      height, int angle,\n                       const int max_width, const int max_height\n
      \                      HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - flt_ptr
    - ','
    - p0
    - ','
    - p1
    - ','
    - p2
    - ','
    - p3
    - ','
    - p4
    - ','
    - p5
    - ','
    - p6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: FILTER
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER(flt_ptr, p0, p1, p2, p3, p4, p5, p6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - flt_ptr
    - ','
    - p0
    - ','
    - p1
    - ','
    - p2
    - ','
    - p3
    - ','
    - p4
    - ','
    - p5
    - ','
    - p6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 614
    functionName: FILTER
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER(flt_ptr, p0, p1, p2, p3, p4, p5, p6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:625,1
    - Dst: FILTER
      Src: /src/dav1d/src/ipred_tmpl.c:642,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/ipred_tmpl.c:643,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:645,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:648,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:652,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft_in
    - width
    - height
    - filt_idx
    - max_width
    - "max_height\n                           HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (filt_idx < 5)
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/dav1d/src/ipred_tmpl.c
    constantsTouched: []
    func_position:
      end: 655
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 655
    functionName: ipred_filter_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - FILTER
    - iclip_pixel
    - assert
    linkageType: ''
    returnType: void
    signature: "void ipred_filter_c(pixel *dst, const ptrdiff_t stride,\n                           const
      pixel *const topleft_in,\n                           const int width, const
      int height, int filt_idx,\n                           const int max_width, const
      int max_height\n                           HIGHBD_DECL_SUFFIX)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:665,1
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:666,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:673,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:674,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:681,1
    - Dst: memcpy
      Src: /src/dav1d/src/ipred_tmpl.c:684,1
    - Dst: ctz
      Src: /src/dav1d/src/ipred_tmpl.c:688,1
    - Dst: ctz
      Src: /src/dav1d/src/ipred_tmpl.c:688,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 9
    argNames:
    - ac
    - ypx
    - stride
    - w_pad
    - h_pad
    - width
    - height
    - ss_hor
    - ss_ver
    argTypes:
    - int16_t*
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (w_pad >= 0 && w_pad * 4 < width)
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/dav1d/src/ipred_tmpl.c
    - condition: (h_pad >= 0 && h_pad * 4 < height)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/dav1d/src/ipred_tmpl.c
    constantsTouched: []
    func_position:
      end: 703
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 703
    functionName: cfl_ac_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - ctz
    - assert
    - memcpy
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE cfl_ac_c(int16_t *ac, const pixel *ypx, const ptrdiff_t stride,\n
      \        const int w_pad, const int h_pad, const int width, const int height,\n
      \        const int ss_hor, const int ss_ver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fmt
    - ','
    - ss_hor
    - ','
    - ss_ver
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 712
    functionName: cfl_ac_fn
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cfl_ac_fn(fmt, ss_hor, ss_ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ipred_tmpl.c:724,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ipred_tmpl.c:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - dst
    - stride
    - pal
    - idx
    - w
    - h
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - uint8_t*
    - int
    - int
    assertStmts:
    - condition: (!(i & 0x88))
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/dav1d/src/ipred_tmpl.c
    constantsTouched: []
    func_position:
      end: 730
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 730
    functionName: pal_pred_c
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - assert
    linkageType: ''
    returnType: void
    signature: "void pal_pred_c(pixel *dst, const ptrdiff_t stride,\n                       const
      pixel *const pal, const uint8_t *idx,\n                       const int w, const
      int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intra_pred_dsp_init_arm
      Src: /src/dav1d/src/ipred_tmpl.c:773,1
    - Dst: intra_pred_dsp_init_riscv
      Src: /src/dav1d/src/ipred_tmpl.c:775,1
    - Dst: intra_pred_dsp_init_x86
      Src: /src/dav1d/src/ipred_tmpl.c:777,1
    - Dst: intra_pred_dsp_init_loongarch
      Src: /src/dav1d/src/ipred_tmpl.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dIntraPredDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 782
    functionName: bitfn
    functionSourceFile: /src/dav1d/src/ipred_tmpl.c
    functionUses: 5
    functionsReached:
    - intra_pred_dsp_init_riscv
    - intra_pred_dsp_init_arm
    - intra_pred_dsp_init_loongarch
    - intra_pred_dsp_init_x86
    linkageType: ''
    returnType: COLD
    signature: COLD bitfn(dav1d_intra_pred_dsp_init)(Dav1dIntraPredDSPContext *const
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vfprintf
      Src: /src/dav1d/src/log.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cookie
    - format
    - ap
    argTypes:
    - void*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: dav1d_log_default_callback
    functionSourceFile: /src/dav1d/src/log.c
    functionUses: 0
    functionsReached:
    - vfprintf
    linkageType: ''
    returnType: COLD
    signature: "COLD dav1d_log_default_callback(void *const cookie,\n                                     const
      char *const format, va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/log.c:47,1
    - Dst: va_start
      Src: /src/dav1d/src/log.c:53,1
    - Dst: Dav1dContext*::logger::callback
      Src: /src/dav1d/src/log.c:54,1
    - Dst: va_end
      Src: /src/dav1d/src/log.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - format
    argTypes:
    - Dav1dContext*
    - char*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/dav1d/src/log.c
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: dav1d_log
    functionSourceFile: /src/dav1d/src/log.c
    functionUses: 4
    functionsReached:
    - va_start
    - Dav1dContext*::logger::callback
    - assert
    - va_end
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_log(Dav1dContext *const c, const char *const format, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:51,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:54,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:60,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - gb
    - strict_std_compliance
    argTypes:
    - GetBits*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: check_trailing_bits
    functionSourceFile: /src/dav1d/src/obu.c
    functionUses: 0
    functionsReached:
    - DAV1D_ERR
    - dav1d_get_bit
    linkageType: ''
    returnType: int
    signature: "int check_trailing_bits(GetBits *const gb,\n                               const
      int strict_std_compliance)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:79,1
    - Dst: memset
      Src: /src/dav1d/src/obu.c:82,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:83,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:86,1
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:87,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:90,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:91,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:94,1
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:95,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:100,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:101,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:104,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:106,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:107,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:110,1
    - Dst: dav1d_get_vlc
      Src: /src/dav1d/src/obu.c:112,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:118,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:120,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:121,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:124,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:125,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:129,1
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:130,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:133,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:134,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:138,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:141,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:142,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:144,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:146,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:151,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:153,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:154,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:158,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:160,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:163,1
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:164,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:168,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:169,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:170,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:171,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:173,1
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:174,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:177,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:179,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:180,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:184,1
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:185,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:188,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:189,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:190,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:195,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:196,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:197,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:198,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:199,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:201,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:202,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:204,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:204,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:206,1
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:207,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:210,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:210,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:212,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:214,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:215,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:216,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:218,1
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:219,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:222,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:224,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:226,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:227,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:229,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:230,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:231,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:238,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:251,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:260,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:262,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:272,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:280,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:282,1
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:283,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:286,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:288,1
    - Dst: dav1d_get_bits_pos
      Src: /src/dav1d/src/obu.c:289,1
    - Dst: check_trailing_bits
      Src: /src/dav1d/src/obu.c:296,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:299,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 171
    argCount: 3
    argNames:
    - hdr
    - gb
    - strict_std_compliance
    argTypes:
    - Dav1dSequenceHeader*
    - GetBits*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 300
    functionName: parse_seq_hdr
    functionSourceFile: /src/dav1d/src/obu.c
    functionUses: 0
    functionsReached:
    - memset
    - dav1d_get_bits_pos
    - dav1d_get_bit
    - check_trailing_bits
    - printf
    - DAV1D_ERR
    - dav1d_get_bits
    - dav1d_get_vlc
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE parse_seq_hdr(Dav1dSequenceHeader *const hdr,\n                                  GetBits
      *const gb,\n                                  const int strict_std_compliance)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/obu.c:305,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:305,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/obu.c:306,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:306,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/obu.c:307,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:307,1
    - Dst: dav1d_init_get_bits
      Src: /src/dav1d/src/obu.c:310,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:311,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:314,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:315,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:316,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:317,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:318,1
    - Dst: dav1d_get_uleb128
      Src: /src/dav1d/src/obu.c:322,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:323,1
    - Dst: parse_seq_hdr
      Src: /src/dav1d/src/obu.c:328,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:329,1
    - Dst: dav1d_bytealign_get_bits
      Src: /src/dav1d/src/obu.c:330,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:333,1
    - Dst: assert
      Src: /src/dav1d/src/obu.c:334,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - out
    - ptr
    - sz
    argTypes:
    - Dav1dSequenceHeader*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (gb.state == 0 && gb.bits_left == 0)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/dav1d/src/obu.c
    constantsTouched: []
    func_position:
      end: 339
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 339
    functionName: dav1d_parse_sequence_header
    functionSourceFile: /src/dav1d/src/obu.c
    functionUses: 2
    functionsReached:
    - dav1d_bytealign_get_bits
    - dav1d_get_uleb128
    - parse_seq_hdr
    - validate_input_or_ret
    - assert
    - dav1d_get_bit
    - DAV1D_ERR
    - dav1d_get_bits
    - dav1d_init_get_bits
    linkageType: ''
    returnType: int
    signature: "int dav1d_parse_sequence_header(Dav1dSequenceHeader *const out,\n
      \                               const uint8_t *const ptr, const size_t sz)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:349,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:357,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:360,1
    - Dst: imax
      Src: /src/dav1d/src/obu.c:361,1
    - Dst: imin
      Src: /src/dav1d/src/obu.c:362,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:373,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:374,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:379,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:381,1
    - Dst: imax
      Src: /src/dav1d/src/obu.c:382,1
    - Dst: imin
      Src: /src/dav1d/src/obu.c:382,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:387,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:389,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:390,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - c
    - gb
    - use_ref
    argTypes:
    - Dav1dContext*
    - GetBits*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 396
    functionName: read_frame_size
    functionSourceFile: /src/dav1d/src/obu.c
    functionUses: 0
    functionsReached:
    - imax
    - imin
    - dav1d_get_bits
    - dav1d_get_bit
    linkageType: ''
    returnType: int
    signature: "int read_frame_size(Dav1dContext *const c, GetBits *const gb,\n                           const
      int use_ref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sz
    - tgt
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: tile_log2
    functionSourceFile: /src/dav1d/src/obu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tile_log2(const int sz, const int tgt)
  - BBCount: 121
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:419,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:421,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:425,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:427,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:429,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:440,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:441,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:445,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:448,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:452,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:454,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:457,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:459,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:462,1
    - Dst: IS_KEY_OR_INTRA
      Src: /src/dav1d/src/obu.c:464,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:468,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:471,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:473,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:477,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/obu.c:478,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:479,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:482,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:491,1
    - Dst: IS_KEY_OR_INTRA
      Src: /src/dav1d/src/obu.c:497,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:499,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:502,1
    - Dst: read_frame_size
      Src: /src/dav1d/src/obu.c:508,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:510,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:513,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:516,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:518,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:520,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:522,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/obu.c:532,1
    - Dst: assert
      Src: /src/dav1d/src/obu.c:543,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:590,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:592,1
    - Dst: read_frame_size
      Src: /src/dav1d/src/obu.c:600,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:602,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:603,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:604,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:605,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/obu.c:607,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:609,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:613,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:618,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:620,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:625,1
    - Dst: tile_log2
      Src: /src/dav1d/src/obu.c:632,1
    - Dst: tile_log2
      Src: /src/dav1d/src/obu.c:633,1
    - Dst: imin
      Src: /src/dav1d/src/obu.c:633,1
    - Dst: tile_log2
      Src: /src/dav1d/src/obu.c:634,1
    - Dst: imin
      Src: /src/dav1d/src/obu.c:634,1
    - Dst: imax
      Src: /src/dav1d/src/obu.c:635,1
    - Dst: tile_log2
      Src: /src/dav1d/src/obu.c:635,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:639,1
    - Dst: imax
      Src: /src/dav1d/src/obu.c:646,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:649,1
    - Dst: imin
      Src: /src/dav1d/src/obu.c:659,1
    - Dst: dav1d_get_uniform
      Src: /src/dav1d/src/obu.c:660,1
    - Dst: imax
      Src: /src/dav1d/src/obu.c:663,1
    - Dst: tile_log2
      Src: /src/dav1d/src/obu.c:665,1
    - Dst: imax
      Src: /src/dav1d/src/obu.c:667,1
    - Dst: imin
      Src: /src/dav1d/src/obu.c:671,1
    - Dst: dav1d_get_uniform
      Src: /src/dav1d/src/obu.c:672,1
    - Dst: tile_log2
      Src: /src/dav1d/src/obu.c:676,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:681,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:684,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:687,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:692,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:693,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:694,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:699,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:700,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:701,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:702,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:703,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:705,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:706,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:707,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:708,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:715,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:718,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:720,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:721,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:722,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:726,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:731,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:737,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:739,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:740,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:748,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:749,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:752,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:753,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:756,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:757,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:760,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:761,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:764,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:765,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:768,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:769,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:775,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:779,1
    - Dst: assert
      Src: /src/dav1d/src/obu.c:787,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:798,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:804,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:806,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:808,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:810,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:811,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:817,1
    - Dst: iclip_u8
      Src: /src/dav1d/src/obu.c:827,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:840,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:841,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:845,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:846,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:848,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:858,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:860,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:863,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:865,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:867,1
    - Dst: dav1d_get_sbits
      Src: /src/dav1d/src/obu.c:869,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:874,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:880,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:881,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:883,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:885,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:889,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:897,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:899,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:900,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:908,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:911,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:917,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:924,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:929,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:931,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/obu.c:934,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:935,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:937,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/obu.c:940,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/obu.c:948,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/obu.c:950,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/obu.c:957,1
    - Dst: imin
      Src: /src/dav1d/src/obu.c:966,1
    - Dst: imax
      Src: /src/dav1d/src/obu.c:967,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/obu.c:975,1
    - Dst: get_poc_diff
      Src: /src/dav1d/src/obu.c:977,1
    - Dst: imin
      Src: /src/dav1d/src/obu.c:987,1
    - Dst: imax
      Src: /src/dav1d/src/obu.c:988,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:994,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:996,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/obu.c:999,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1000,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1002,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1005,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1007,1
    - Dst: IS_INTER_OR_SWITCH
      Src: /src/dav1d/src/obu.c:1014,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1016,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1017,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1018,1
    - Dst: dav1d_get_bits_subexp
      Src: /src/dav1d/src/obu.c:1037,1
    - Dst: dav1d_get_bits_subexp
      Src: /src/dav1d/src/obu.c:1038,1
    - Dst: dav1d_get_bits_subexp
      Src: /src/dav1d/src/obu.c:1048,1
    - Dst: dav1d_get_bits_subexp
      Src: /src/dav1d/src/obu.c:1050,1
    - Dst: dav1d_get_bits_subexp
      Src: /src/dav1d/src/obu.c:1056,1
    - Dst: dav1d_get_bits_subexp
      Src: /src/dav1d/src/obu.c:1057,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1061,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1066,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1068,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1069,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1071,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1083,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1086,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1089,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1093,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1099,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1102,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1105,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1115,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1116,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1120,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1125,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1129,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1130,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1133,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1134,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1135,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1137,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1138,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1143,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/obu.c:1150,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:1151,1
    CyclomaticComplexity: 241
    EdgeCount: 241
    ICount: 538
    argCount: 2
    argNames:
    - c
    - gb
    argTypes:
    - Dav1dContext*
    - GetBits*
    assertStmts:
    - condition: (hdr->primary_ref_frame != DAV1D_PRIMARY_REF_NONE)
      pos:
        line_end: 786
        line_start: 786
        source_file: /src/dav1d/src/obu.c
    - condition: (earliest_ref >= 0)
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/dav1d/src/obu.c
    constantsTouched: []
    func_position:
      end: 1152
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 1152
    functionName: parse_frame_hdr
    functionSourceFile: /src/dav1d/src/obu.c
    functionUses: 0
    functionsReached:
    - imin
    - iclip_u8
    - IS_KEY_OR_INTRA
    - tile_log2
    - assert
    - dav1d_get_uniform
    - dav1d_get_bit
    - DAV1D_ERR
    - dav1d_get_sbits
    - imax
    - dav1d_get_bits_subexp
    - dav1d_log
    - get_poc_diff
    - printf
    - IS_INTER_OR_SWITCH
    - dav1d_get_bits
    - read_frame_size
    linkageType: ''
    returnType: int
    signature: int parse_frame_hdr(Dav1dContext *const c, GetBits *const gb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1156,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1161,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - gb
    argTypes:
    - Dav1dContext*
    - GetBits*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1167
    functionName: parse_tile_hdr
    functionSourceFile: /src/dav1d/src/obu.c
    functionUses: 0
    functionsReached:
    - dav1d_get_bits
    - dav1d_get_bit
    linkageType: ''
    returnType: void
    signature: void parse_tile_hdr(Dav1dContext *const c, GetBits *const gb)
  - BBCount: 91
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_init_get_bits
      Src: /src/dav1d/src/obu.c:1173,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1176,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1178,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1179,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1180,1
    - Dst: dav1d_get_bit
      Src: /src/dav1d/src/obu.c:1181,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1185,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1186,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1187,1
    - Dst: dav1d_get_uleb128
      Src: /src/dav1d/src/obu.c:1191,1
    - Dst: assert
      Src: /src/dav1d/src/obu.c:1200,1
    - Dst: dav1d_ref_create_using_pool
      Src: /src/dav1d/src/obu.c:1214,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:1216,1
    - Dst: parse_seq_hdr
      Src: /src/dav1d/src/obu.c:1218,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/obu.c:1219,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1220,1
    - Dst: ulog2
      Src: /src/dav1d/src/obu.c:1228,1
    - Dst: memcmp
      Src: /src/dav1d/src/obu.c:1239,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1243,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1244,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/obu.c:1247,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1248,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1249,1
    - Dst: dav1d_cdf_thread_unref
      Src: /src/dav1d/src/obu.c:1250,1
    - Dst: memcmp
      Src: /src/dav1d/src/obu.c:1254,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1259,1
    - Dst: dav1d_ref_create_using_pool
      Src: /src/dav1d/src/obu.c:1271,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:1273,1
    - Dst: assert
      Src: /src/dav1d/src/obu.c:1277,1
    - Dst: dav1d_ref_is_writable
      Src: /src/dav1d/src/obu.c:1277,1
    - Dst: memset
      Src: /src/dav1d/src/obu.c:1280,1
    - Dst: parse_frame_hdr
      Src: /src/dav1d/src/obu.c:1283,1
    - Dst: dav1d_data_unref_internal
      Src: /src/dav1d/src/obu.c:1288,1
    - Dst: check_trailing_bits
      Src: /src/dav1d/src/obu.c:1294,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/obu.c:1303,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:1306,1
    - Dst: dav1d_bytealign_get_bits
      Src: /src/dav1d/src/obu.c:1320,1
    - Dst: dav1d_realloc
      Src: /src/dav1d/src/obu.c:1326,1
    - Dst: memset
      Src: /src/dav1d/src/obu.c:1330,1
    - Dst: parse_tile_hdr
      Src: /src/dav1d/src/obu.c:1333,1
    - Dst: dav1d_bytealign_get_bits
      Src: /src/dav1d/src/obu.c:1335,1
    - Dst: dav1d_data_ref
      Src: /src/dav1d/src/obu.c:1338,1
    - Dst: dav1d_data_unref_internal
      Src: /src/dav1d/src/obu.c:1346,1
    - Dst: dav1d_get_uleb128
      Src: /src/dav1d/src/obu.c:1362,1
    - Dst: dav1d_ref_create
      Src: /src/dav1d/src/obu.c:1367,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:1369,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1372,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1374,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1378,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1380,1
    - Dst: check_trailing_bits
      Src: /src/dav1d/src/obu.c:1385,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1386,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1390,1
    - Dst: dav1d_ref_create
      Src: /src/dav1d/src/obu.c:1396,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:1398,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1402,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1403,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1405,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1411,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1413,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1417,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1419,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1423,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1425,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1429,1
    - Dst: printf
      Src: /src/dav1d/src/obu.c:1431,1
    - Dst: check_trailing_bits
      Src: /src/dav1d/src/obu.c:1435,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1436,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1440,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1453,1
    - Dst: dav1d_get_bits
      Src: /src/dav1d/src/obu.c:1456,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/obu.c:1461,1
    - Dst: dav1d_realloc
      Src: /src/dav1d/src/obu.c:1466,1
    - Dst: memset
      Src: /src/dav1d/src/obu.c:1470,1
    - Dst: assert
      Src: /src/dav1d/src/obu.c:1474,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/obu.c:1475,1
    - Dst: dav1d_ref_init
      Src: /src/dav1d/src/obu.c:1477,1
    - Dst: assert
      Src: /src/dav1d/src/obu.c:1480,1
    - Dst: atomic_load
      Src: /src/dav1d/src/obu.c:1480,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/obu.c:1488,1
    - Dst: assert
      Src: /src/dav1d/src/obu.c:1497,1
    - Dst: memcpy
      Src: /src/dav1d/src/obu.c:1498,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/obu.c:1510,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/obu.c:1524,1
    - Dst: dav1d_thread_picture_ref
      Src: /src/dav1d/src/obu.c:1551,1
    - Dst: dav1d_picture_copy_props
      Src: /src/dav1d/src/obu.c:1553,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1559,1
    - Dst: dav1d_picture_get_event_flags
      Src: /src/dav1d/src/obu.c:1562,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/obu.c:1564,1
    - Dst: pthread_cond_wait
      Src: /src/dav1d/src/obu.c:1572,1
    - Dst: atomic_load
      Src: /src/dav1d/src/obu.c:1576,1
    - Dst: atomic_load
      Src: /src/dav1d/src/obu.c:1577,1
    - Dst: atomic_fetch_add
      Src: /src/dav1d/src/obu.c:1579,1
    - Dst: atomic_store
      Src: /src/dav1d/src/obu.c:1581,1
    - Dst: atomic_compare_exchange_strong
      Src: /src/dav1d/src/obu.c:1582,1
    - Dst: dav1d_data_props_copy
      Src: /src/dav1d/src/obu.c:1591,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/obu.c:1592,1
    - Dst: atomic_load_explicit
      Src: /src/dav1d/src/obu.c:1594,1
    - Dst: dav1d_thread_picture_ref
      Src: /src/dav1d/src/obu.c:1599,1
    - Dst: dav1d_picture_get_event_flags
      Src: /src/dav1d/src/obu.c:1600,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/obu.c:1602,1
    - Dst: dav1d_thread_picture_ref
      Src: /src/dav1d/src/obu.c:1604,1
    - Dst: dav1d_picture_copy_props
      Src: /src/dav1d/src/obu.c:1607,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1613,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/obu.c:1617,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/obu.c:1626,1
    - Dst: dav1d_thread_picture_ref
      Src: /src/dav1d/src/obu.c:1627,1
    - Dst: dav1d_cdf_thread_unref
      Src: /src/dav1d/src/obu.c:1629,1
    - Dst: dav1d_cdf_thread_ref
      Src: /src/dav1d/src/obu.c:1630,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1632,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/obu.c:1635,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1636,1
    - Dst: dav1d_submit_frame
      Src: /src/dav1d/src/obu.c:1660,1
    - Dst: assert
      Src: /src/dav1d/src/obu.c:1662,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/obu.c:1674,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/obu.c:1679,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/obu.c:1680,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/obu.c:1684,1
    - Dst: dav1d_data_props_copy
      Src: /src/dav1d/src/obu.c:1691,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/obu.c:1692,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/obu.c:1694,1
    CyclomaticComplexity: 146
    EdgeCount: 146
    ICount: 395
    argCount: 2
    argNames:
    - c
    - in
    argTypes:
    - Dav1dContext*
    - Dav1dData*
    assertStmts:
    - condition: (c->itut_t35_ref && atomic_load(&c->itut_t35_ref->ref_cnt) == 1)
      pos:
        line_end: 1479
        line_start: 1479
        source_file: /src/dav1d/src/obu.c
    - condition: (!c->itut_t35_ref)
      pos:
        line_end: 1473
        line_start: 1473
        source_file: /src/dav1d/src/obu.c
    - condition: (gb.bits_left == 0)
      pos:
        line_end: 1496
        line_start: 1496
        source_file: /src/dav1d/src/obu.c
    - condition: (gb.bits_left == 0)
      pos:
        line_end: 1199
        line_start: 1199
        source_file: /src/dav1d/src/obu.c
    - condition: (!c->n_tile_data)
      pos:
        line_end: 1661
        line_start: 1661
        source_file: /src/dav1d/src/obu.c
    - condition: (dav1d_ref_is_writable(c->frame_hdr_ref))
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/dav1d/src/obu.c
    constantsTouched: []
    func_position:
      end: 1695
      start: 1169
    functionDepth: 10
    functionLinenumber: 1169
    functionLinenumberEnd: 1695
    functionName: dav1d_parse_obus
    functionSourceFile: /src/dav1d/src/obu.c
    functionUses: 0
    functionsReached:
    - dav1d_submit_frame
    - dav1d_cdf_thread_unref
    - dav1d_cdf_thread_ref
    - dav1d_thread_picture_unref
    - memset
    - atomic_fetch_add
    - pthread_mutex_unlock
    - atomic_load
    - dav1d_picture_get_event_flags
    - dav1d_get_uleb128
    - dav1d_ref_create_using_pool
    - dav1d_bytealign_get_bits
    - parse_seq_hdr
    - dav1d_thread_picture_ref
    - dav1d_ref_dec
    - dav1d_data_unref_internal
    - check_trailing_bits
    - atomic_compare_exchange_strong
    - parse_tile_hdr
    - DAV1D_ERR
    - dav1d_get_bits
    - dav1d_init_get_bits
    - ulog2
    - pthread_mutex_lock
    - dav1d_malloc
    - dav1d_ref_init
    - dav1d_ref_create
    - dav1d_log
    - dav1d_data_props_copy
    - printf
    - memcmp
    - dav1d_realloc
    - memcpy
    - dav1d_picture_copy_props
    - pthread_cond_wait
    - atomic_store
    - atomic_load_explicit
    - assert
    - dav1d_get_bit
    - dav1d_ref_is_writable
    - parse_frame_hdr
    - dav1d_data_ref
    - dav1d_ref_inc
    linkageType: ''
    returnType: ptrdiff_t
    signature: ptrdiff_t dav1d_parse_obus(Dav1dContext *const c, Dav1dData *const
      in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: decl_generate_grain_y_fn
    functionSourceFile: /src/dav1d/src/filmgrain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_generate_grain_y_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: decl_generate_grain_uv_fn
    functionSourceFile: /src/dav1d/src/filmgrain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_generate_grain_uv_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: decl_fgy_32x32xn_fn
    functionSourceFile: /src/dav1d/src/filmgrain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_fgy_32x32xn_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: decl_fguv_32x32xn_fn
    functionSourceFile: /src/dav1d/src/filmgrain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_fguv_32x32xn_fn(name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/loopfilter_tmpl.c:42,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:55,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:55,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:56,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:56,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:62,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:62,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:68,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:68,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:81,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:81,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:82,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:82,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:83,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:83,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:87,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:87,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:88,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:88,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:91,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:91,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:131,1
    - Dst: abs
      Src: /src/dav1d/src/loopfilter_tmpl.c:131,1
    - Dst: iclip_diff
      Src: /src/dav1d/src/loopfilter_tmpl.c:137,1
    - Dst: iclip_diff
      Src: /src/dav1d/src/loopfilter_tmpl.c:138,1
    - Dst: imin
      Src: /src/dav1d/src/loopfilter_tmpl.c:140,1
    - Dst: imin
      Src: /src/dav1d/src/loopfilter_tmpl.c:141,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/loopfilter_tmpl.c:143,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/loopfilter_tmpl.c:144,1
    - Dst: iclip_diff
      Src: /src/dav1d/src/loopfilter_tmpl.c:146,1
    - Dst: imin
      Src: /src/dav1d/src/loopfilter_tmpl.c:148,1
    - Dst: imin
      Src: /src/dav1d/src/loopfilter_tmpl.c:149,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/loopfilter_tmpl.c:151,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/loopfilter_tmpl.c:152,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/loopfilter_tmpl.c:155,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/loopfilter_tmpl.c:156,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 76
    argCount: 7
    argNames:
    - dst
    - E
    - I
    - H
    - stridea
    - strideb
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - int
    - int
    - int
    - ptrdiff_t
    - ptrdiff_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 161
    functionName: loop_filter
    functionSourceFile: /src/dav1d/src/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - imin
    - iclip_pixel
    - abs
    - iclip_diff
    - bitdepth_from_max
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE loop_filter(pixel *dst, int E, int I, int H,\n            const
      ptrdiff_t stridea, const ptrdiff_t strideb, const int wd\n            HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: iclip_diff
    functionSourceFile: /src/dav1d/src/loopfilter_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iclip_diff(v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loopfilter_tmpl.c:171,1
    - Dst: loop_filter
      Src: /src/dav1d/src/loopfilter_tmpl.c:179,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loopfilter_tmpl.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 7
    argNames:
    - dst
    - stride
    - vmask
    - (*l)
    - b4_stride
    - lut
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - uint32_t*
    - uint8_t[]
    - ptrdiff_t
    - Av1FilterLUT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 183
    functionName: loop_filter_h_sb128y_c
    functionSourceFile: /src/dav1d/src/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - loop_filter
    linkageType: ''
    returnType: void
    signature: "void loop_filter_h_sb128y_c(pixel *dst, const ptrdiff_t stride,\n
      \                                  const uint32_t *const vmask,\n                                   const
      uint8_t (*l)[4], ptrdiff_t b4_stride,\n                                   const
      Av1FilterLUT *lut, const int h\n                                   HIGHBD_DECL_SUFFIX)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loop_filter
      Src: /src/dav1d/src/loopfilter_tmpl.c:199,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loopfilter_tmpl.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 7
    argNames:
    - dst
    - stride
    - vmask
    - (*l)
    - b4_stride
    - lut
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - uint32_t*
    - uint8_t[]
    - ptrdiff_t
    - Av1FilterLUT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: loop_filter_v_sb128y_c
    functionSourceFile: /src/dav1d/src/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - loop_filter
    linkageType: ''
    returnType: void
    signature: "void loop_filter_v_sb128y_c(pixel *dst, const ptrdiff_t stride,\n
      \                                  const uint32_t *const vmask,\n                                   const
      uint8_t (*l)[4], ptrdiff_t b4_stride,\n                                   const
      Av1FilterLUT *lut, const int w\n                                   HIGHBD_DECL_SUFFIX)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loopfilter_tmpl.c:213,1
    - Dst: loop_filter
      Src: /src/dav1d/src/loopfilter_tmpl.c:221,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loopfilter_tmpl.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 7
    argNames:
    - dst
    - stride
    - vmask
    - (*l)
    - b4_stride
    - lut
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - uint32_t*
    - uint8_t[]
    - ptrdiff_t
    - Av1FilterLUT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 225
    functionName: loop_filter_h_sb128uv_c
    functionSourceFile: /src/dav1d/src/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - loop_filter
    linkageType: ''
    returnType: void
    signature: "void loop_filter_h_sb128uv_c(pixel *dst, const ptrdiff_t stride,\n
      \                                   const uint32_t *const vmask,\n                                    const
      uint8_t (*l)[4], ptrdiff_t b4_stride,\n                                    const
      Av1FilterLUT *lut, const int h\n                                    HIGHBD_DECL_SUFFIX)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loop_filter
      Src: /src/dav1d/src/loopfilter_tmpl.c:241,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loopfilter_tmpl.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 7
    argNames:
    - dst
    - stride
    - vmask
    - (*l)
    - b4_stride
    - lut
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - uint32_t*
    - uint8_t[]
    - ptrdiff_t
    - Av1FilterLUT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 245
    functionName: loop_filter_v_sb128uv_c
    functionSourceFile: /src/dav1d/src/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - loop_filter
    linkageType: ''
    returnType: void
    signature: "void loop_filter_v_sb128uv_c(pixel *dst, const ptrdiff_t stride,\n
      \                                   const uint32_t *const vmask,\n                                    const
      uint8_t (*l)[4], ptrdiff_t b4_stride,\n                                    const
      Av1FilterLUT *lut, const int w\n                                    HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loop_filter_dsp_init_arm
      Src: /src/dav1d/src/loopfilter_tmpl.c:267,1
    - Dst: loop_filter_dsp_init_loongarch
      Src: /src/dav1d/src/loopfilter_tmpl.c:269,1
    - Dst: loop_filter_dsp_init_ppc
      Src: /src/dav1d/src/loopfilter_tmpl.c:271,1
    - Dst: loop_filter_dsp_init_x86
      Src: /src/dav1d/src/loopfilter_tmpl.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dLoopFilterDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 276
    functionName: bitfn
    functionSourceFile: /src/dav1d/src/loopfilter_tmpl.c
    functionUses: 5
    functionsReached:
    - loop_filter_dsp_init_ppc
    - loop_filter_dsp_init_x86
    - loop_filter_dsp_init_loongarch
    - loop_filter_dsp_init_arm
    linkageType: ''
    returnType: COLD
    signature: COLD bitfn(dav1d_loop_filter_dsp_init)(Dav1dLoopFilterDSPContext *const
      c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/itx_tmpl.c:51,1
    - Dst: assert
      Src: /src/dav1d/src/itx_tmpl.c:52,1
    - Dst: assert
      Src: /src/dav1d/src/itx_tmpl.c:53,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/itx_tmpl.c:66,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/itx_tmpl.c:68,1
    - Dst: imin
      Src: /src/dav1d/src/itx_tmpl.c:75,1
    - Dst: imin
      Src: /src/dav1d/src/itx_tmpl.c:75,1
    - Dst: imin
      Src: /src/dav1d/src/itx_tmpl.c:89,1
    - Dst: assert
      Src: /src/dav1d/src/itx_tmpl.c:95,1
    - Dst: first_1d_fn
      Src: /src/dav1d/src/itx_tmpl.c:103,1
    - Dst: memset
      Src: /src/dav1d/src/itx_tmpl.c:106,1
    - Dst: memset
      Src: /src/dav1d/src/itx_tmpl.c:108,1
    - Dst: iclip
      Src: /src/dav1d/src/itx_tmpl.c:110,1
    - Dst: second_1d_fn
      Src: /src/dav1d/src/itx_tmpl.c:113,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/itx_tmpl.c:116,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/itx_tmpl.c:118,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 7
    argNames:
    - dst
    - stride
    - coeff
    - eob
    - tx
    - shift
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - coef*
    - int
    - int
    - int
    - enum TxfmType
    assertStmts:
    - condition: (w >= 4 && w <= 64)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/dav1d/src/itx_tmpl.c
    - condition: (eob >= 0)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/dav1d/src/itx_tmpl.c
    - condition: (h >= 4 && h <= 64)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/dav1d/src/itx_tmpl.c
    - condition: (last_nonzero_col < sh)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/dav1d/src/itx_tmpl.c
    constantsTouched: []
    func_position:
      end: 119
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 119
    functionName: inv_txfm_add_c
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - imin
    - second_1d_fn
    - iclip_pixel
    - assert
    - memset
    - first_1d_fn
    - PXSTRIDE
    - iclip
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE inv_txfm_add_c(pixel *dst, const ptrdiff_t stride, coef *const
      coeff,\n               const int eob, const /*enum RectTxfmSize*/ int tx, const
      int shift,\n               const enum TxfmType txtp HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - type1
    - ','
    - type2
    - ','
    - type
    - ','
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: inv_txfm_fn
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn(type1, type2, type, pfx, w, h, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: inv_txfm_fn64
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn64(pfx, w, h, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: inv_txfm_fn32
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn32(pfx, w, h, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 153
    functionName: inv_txfm_fn16
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn16(pfx, w, h, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: inv_txfm_fn84
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn84(pfx, w, h, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_inv_wht4_1d_c
      Src: /src/dav1d/src/itx_tmpl.c:192,1
    - Dst: memset
      Src: /src/dav1d/src/itx_tmpl.c:194,1
    - Dst: dav1d_inv_wht4_1d_c
      Src: /src/dav1d/src/itx_tmpl.c:197,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/itx_tmpl.c:200,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/itx_tmpl.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - dst
    - stride
    - coeff
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - coef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: inv_txfm_add_wht_wht_4x4_c
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - iclip_pixel
    - memset
    - dav1d_inv_wht4_1d_c
    linkageType: ''
    returnType: void
    signature: "void inv_txfm_add_wht_wht_4x4_c(pixel *dst, const ptrdiff_t stride,\n
      \                                      coef *const coeff, const int eob\n                                       HIGHBD_DECL_SUFFIX)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assign_itx_all_fn84
      Src: /src/dav1d/src/itx_tmpl.c:270,1
    - Dst: assign_itx_all_fn84
      Src: /src/dav1d/src/itx_tmpl.c:271,1
    - Dst: assign_itx_all_fn84
      Src: /src/dav1d/src/itx_tmpl.c:272,1
    - Dst: assign_itx_all_fn84
      Src: /src/dav1d/src/itx_tmpl.c:273,1
    - Dst: assign_itx_all_fn84
      Src: /src/dav1d/src/itx_tmpl.c:274,1
    - Dst: assign_itx_all_fn84
      Src: /src/dav1d/src/itx_tmpl.c:275,1
    - Dst: assign_itx_all_fn32
      Src: /src/dav1d/src/itx_tmpl.c:276,1
    - Dst: assign_itx_all_fn84
      Src: /src/dav1d/src/itx_tmpl.c:277,1
    - Dst: assign_itx_all_fn84
      Src: /src/dav1d/src/itx_tmpl.c:278,1
    - Dst: assign_itx_all_fn16
      Src: /src/dav1d/src/itx_tmpl.c:279,1
    - Dst: assign_itx_all_fn32
      Src: /src/dav1d/src/itx_tmpl.c:280,1
    - Dst: assign_itx_all_fn64
      Src: /src/dav1d/src/itx_tmpl.c:281,1
    - Dst: assign_itx_all_fn32
      Src: /src/dav1d/src/itx_tmpl.c:282,1
    - Dst: assign_itx_all_fn32
      Src: /src/dav1d/src/itx_tmpl.c:283,1
    - Dst: assign_itx_all_fn32
      Src: /src/dav1d/src/itx_tmpl.c:284,1
    - Dst: assign_itx_all_fn64
      Src: /src/dav1d/src/itx_tmpl.c:285,1
    - Dst: assign_itx_all_fn64
      Src: /src/dav1d/src/itx_tmpl.c:286,1
    - Dst: assign_itx_all_fn64
      Src: /src/dav1d/src/itx_tmpl.c:287,1
    - Dst: assign_itx_all_fn64
      Src: /src/dav1d/src/itx_tmpl.c:288,1
    - Dst: itx_dsp_init_arm
      Src: /src/dav1d/src/itx_tmpl.c:293,1
    - Dst: itx_dsp_init_loongarch
      Src: /src/dav1d/src/itx_tmpl.c:296,1
    - Dst: itx_dsp_init_ppc
      Src: /src/dav1d/src/itx_tmpl.c:299,1
    - Dst: itx_dsp_init_riscv
      Src: /src/dav1d/src/itx_tmpl.c:302,1
    - Dst: itx_dsp_init_x86
      Src: /src/dav1d/src/itx_tmpl.c:305,1
    - Dst: dav1d_init_last_nonzero_col_from_eob_tables
      Src: /src/dav1d/src/itx_tmpl.c:310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - c
    - bpc
    argTypes:
    - Dav1dInvTxfmDSPContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 311
    functionName: bitfn
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 5
    functionsReached:
    - itx_dsp_init_riscv
    - itx_dsp_init_ppc
    - itx_dsp_init_x86
    - dav1d_init_last_nonzero_col_from_eob_tables
    - itx_dsp_init_arm
    - assign_itx_all_fn84
    - assign_itx_all_fn64
    - assign_itx_all_fn16
    - itx_dsp_init_loongarch
    - assign_itx_all_fn32
    linkageType: ''
    returnType: COLD
    signature: COLD bitfn(dav1d_itx_dsp_init)(Dav1dInvTxfmDSPContext *const c, int
      bpc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - pfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: assign_itx_all_fn64
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx_all_fn64(w, h, pfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - pfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: assign_itx_all_fn32
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx_all_fn32(w, h, pfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - pfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 252
    functionName: assign_itx_all_fn16
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx_all_fn16(w, h, pfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - pfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: assign_itx_all_fn84
    functionSourceFile: /src/dav1d/src/itx_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx_all_fn84(w, h, pfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iclip
      Src: /src/dav1d/src/warpmv.c:64,1
    - Dst: apply_sign
      Src: /src/dav1d/src/warpmv.c:66,1
    - Dst: abs
      Src: /src/dav1d/src/warpmv.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: iclip_wmp
    functionSourceFile: /src/dav1d/src/warpmv.c
    functionUses: 0
    functionsReached:
    - iclip
    - apply_sign
    - abs
    linkageType: ''
    returnType: int
    signature: int iclip_wmp(const int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ulog2
      Src: /src/dav1d/src/warpmv.c:70,1
    - Dst: assert
      Src: /src/dav1d/src/warpmv.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - shift
    argTypes:
    - unsigned
    - int*
    assertStmts:
    - condition: (f <= 256)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/dav1d/src/warpmv.c
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: resolve_divisor_32
    functionSourceFile: /src/dav1d/src/warpmv.c
    functionUses: 0
    functionsReached:
    - ulog2
    - assert
    linkageType: ''
    returnType: int
    signature: int resolve_divisor_32(const unsigned d, int *const shift)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iclip_wmp
      Src: /src/dav1d/src/warpmv.c:85,1
    - Dst: iclip_wmp
      Src: /src/dav1d/src/warpmv.c:86,1
    - Dst: apply_sign
      Src: /src/dav1d/src/warpmv.c:89,1
    - Dst: resolve_divisor_32
      Src: /src/dav1d/src/warpmv.c:89,1
    - Dst: abs
      Src: /src/dav1d/src/warpmv.c:89,1
    - Dst: iclip_wmp
      Src: /src/dav1d/src/warpmv.c:92,1
    - Dst: apply_sign64
      Src: /src/dav1d/src/warpmv.c:92,1
    - Dst: llabs
      Src: /src/dav1d/src/warpmv.c:92,1
    - Dst: iclip_wmp
      Src: /src/dav1d/src/warpmv.c:94,1
    - Dst: apply_sign64
      Src: /src/dav1d/src/warpmv.c:95,1
    - Dst: llabs
      Src: /src/dav1d/src/warpmv.c:95,1
    - Dst: abs
      Src: /src/dav1d/src/warpmv.c:98,1
    - Dst: abs
      Src: /src/dav1d/src/warpmv.c:98,1
    - Dst: abs
      Src: /src/dav1d/src/warpmv.c:99,1
    - Dst: abs
      Src: /src/dav1d/src/warpmv.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - wm
    argTypes:
    - Dav1dWarpedMotionParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: dav1d_get_shear_params
    functionSourceFile: /src/dav1d/src/warpmv.c
    functionUses: 3
    functionsReached:
    - apply_sign64
    - iclip_wmp
    - resolve_divisor_32
    - abs
    - llabs
    - apply_sign
    linkageType: ''
    returnType: int
    signature: int dav1d_get_shear_params(Dav1dWarpedMotionParams *const wm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u64log2
      Src: /src/dav1d/src/warpmv.c:103,1
    - Dst: assert
      Src: /src/dav1d/src/warpmv.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - shift
    argTypes:
    - uint64_t
    - int*
    assertStmts:
    - condition: (f <= 256)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/dav1d/src/warpmv.c
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: resolve_divisor_64
    functionSourceFile: /src/dav1d/src/warpmv.c
    functionUses: 0
    functionsReached:
    - u64log2
    - assert
    linkageType: ''
    returnType: int
    signature: int resolve_divisor_64(const uint64_t d, int *const shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_sign64
      Src: /src/dav1d/src/warpmv.c:117,1
    - Dst: llabs
      Src: /src/dav1d/src/warpmv.c:117,1
    - Dst: iclip
      Src: /src/dav1d/src/warpmv.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - px
    - idet
    - shift
    argTypes:
    - int64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: get_mult_shift_ndiag
    functionSourceFile: /src/dav1d/src/warpmv.c
    functionUses: 0
    functionsReached:
    - llabs
    - iclip
    - apply_sign64
    linkageType: ''
    returnType: int
    signature: "int get_mult_shift_ndiag(const int64_t px,\n                                const
      int idet, const int shift)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_sign64
      Src: /src/dav1d/src/warpmv.c:127,1
    - Dst: llabs
      Src: /src/dav1d/src/warpmv.c:127,1
    - Dst: iclip
      Src: /src/dav1d/src/warpmv.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - px
    - idet
    - shift
    argTypes:
    - int64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: get_mult_shift_diag
    functionSourceFile: /src/dav1d/src/warpmv.c
    functionUses: 0
    functionsReached:
    - llabs
    - iclip
    - apply_sign64
    linkageType: ''
    returnType: int
    signature: "int get_mult_shift_diag(const int64_t px,\n                               const
      int idet, const int shift)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iclip
      Src: /src/dav1d/src/warpmv.c:143,1
    - Dst: iclip
      Src: /src/dav1d/src/warpmv.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - bw4
    - bh4
    - mv
    - wm
    - bx4
    - by4
    argTypes:
    - int
    - int
    - mv
    - Dav1dWarpedMotionParams*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: dav1d_set_affine_mv2d
    functionSourceFile: /src/dav1d/src/warpmv.c
    functionUses: 1
    functionsReached:
    - iclip
    linkageType: ''
    returnType: void
    signature: "void dav1d_set_affine_mv2d(const int bw4, const int bh4,\n                           const
      mv mv, Dav1dWarpedMotionParams *const wm,\n                           const
      int bx4, const int by4)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/dav1d/src/warpmv.c:172,1
    - Dst: abs
      Src: /src/dav1d/src/warpmv.c:172,1
    - Dst: apply_sign64
      Src: /src/dav1d/src/warpmv.c:186,1
    - Dst: resolve_divisor_64
      Src: /src/dav1d/src/warpmv.c:186,1
    - Dst: llabs
      Src: /src/dav1d/src/warpmv.c:186,1
    - Dst: get_mult_shift_diag
      Src: /src/dav1d/src/warpmv.c:194,1
    - Dst: get_mult_shift_ndiag
      Src: /src/dav1d/src/warpmv.c:196,1
    - Dst: get_mult_shift_ndiag
      Src: /src/dav1d/src/warpmv.c:198,1
    - Dst: get_mult_shift_diag
      Src: /src/dav1d/src/warpmv.c:200,1
    - Dst: iclip
      Src: /src/dav1d/src/warpmv.c:203,1
    - Dst: iclip
      Src: /src/dav1d/src/warpmv.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 8
    argNames:
    - (*pts)
    - np
    - bw4
    - bh4
    - mv
    - wm
    - bx4
    - by4
    argTypes:
    - int[][]
    - int
    - int
    - int
    - mv
    - Dav1dWarpedMotionParams*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 209
    functionName: dav1d_find_affine_int
    functionSourceFile: /src/dav1d/src/warpmv.c
    functionUses: 1
    functionsReached:
    - get_mult_shift_ndiag
    - apply_sign64
    - get_mult_shift_diag
    - abs
    - llabs
    - resolve_divisor_64
    - iclip
    linkageType: ''
    returnType: int
    signature: "int dav1d_find_affine_int(const int (*pts)[2][2], const int np,\n
      \                         const int bw4, const int bh4,\n                          const
      mv mv, Dav1dWarpedMotionParams *const wm,\n                          const int
      bx4, const int by4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/recon_tmpl.c:53,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/recon_tmpl.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - msac
    argTypes:
    - MsacContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: read_golomb
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 0
    functionsReached:
    - dav1d_msac_decode_bool_equi
    linkageType: ''
    returnType: unsigned
    signature: unsigned read_golomb(MsacContext *const msac)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:85,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:86,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:87,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:88,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:89,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:92,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:93,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:94,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:95,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:96,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:119,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:120,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:121,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:122,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:123,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:124,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:127,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:128,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:129,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:130,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:131,1
    - Dst: MERGE_CTX
      Src: /src/dav1d/src/recon_tmpl.c:132,1
    - Dst: umin
      Src: /src/dav1d/src/recon_tmpl.c:136,1
    - Dst: umin
      Src: /src/dav1d/src/recon_tmpl.c:136,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 61
    argCount: 6
    argNames:
    - t_dim
    - bs
    - a
    - l
    - chroma
    - layout
    argTypes:
    - TxfmInfo*
    - enum BlockSize
    - uint8_t*
    - uint8_t*
    - int
    - enum Dav1dPixelLayout
    assertStmts:
    - condition: (0)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (0)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (0)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (0)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 138
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 138
    functionName: get_skip_ctx
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 0
    functionsReached:
    - MERGE_CTX
    - assert
    - umin
    linkageType: ''
    returnType: unsigned
    signature: "unsigned get_skip_ctx(const TxfmInfo *const t_dim,\n                                    const
      enum BlockSize bs,\n                                    const uint8_t *const
      a,\n                                    const uint8_t *const l,\n                                    const
      int chroma,\n                                    const enum Dav1dPixelLayout
      layout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dir
    - ','
    - type
    - ','
    - no_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: MERGE_CTX
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGE_CTX(dir, type, no_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dir
    - ','
    - type
    - ','
    - tx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: MERGE_CTX
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGE_CTX(dir, type, tx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:154,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 126
    argCount: 3
    argNames:
    - tx
    - a
    - l
    argTypes:
    - int
    - uint8_t*
    - uint8_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 296
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 296
    functionName: get_dc_sign_ctx
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned
    signature: "unsigned get_dc_sign_ctx(const int /*enum RectTxfmSize*/ tx,\n                                       const
      uint8_t *const a,\n                                       const uint8_t *const
      l)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: umin
      Src: /src/dav1d/src/recon_tmpl.c:311,1
    - Dst: umin
      Src: /src/dav1d/src/recon_tmpl.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - levels
    - tx_class
    - hi_mag
    - (*const ctx_offsets)
    - x
    - y
    - stride
    argTypes:
    - uint8_t*
    - enum TxClass
    - unsigned*
    - uint8_t[]
    - unsigned
    - unsigned
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 319
    functionName: get_lo_ctx
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 0
    functionsReached:
    - umin
    linkageType: ''
    returnType: unsigned
    signature: "unsigned get_lo_ctx(const uint8_t *const levels,\n                                  const
      enum TxClass tx_class,\n                                  unsigned *const hi_mag,\n
      \                                 const uint8_t (*const ctx_offsets)[5],\n                                  const
      unsigned x, const unsigned y,\n                                  const ptrdiff_t
      stride)"
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:336,1
    - Dst: get_skip_ctx
      Src: /src/dav1d/src/recon_tmpl.c:339,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/recon_tmpl.c:340,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:343,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:353,1
    - Dst: get_uv_inter_txtp
      Src: /src/dav1d/src/recon_tmpl.c:360,1
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/recon_tmpl.c:372,1
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/recon_tmpl.c:376,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:381,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/recon_tmpl.c:385,1
    - Dst: dav1d_msac_decode_symbol_adapt16
      Src: /src/dav1d/src/recon_tmpl.c:389,1
    - Dst: dav1d_msac_decode_symbol_adapt16
      Src: /src/dav1d/src/recon_tmpl.c:393,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:398,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:405,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:405,1
    - Dst: case_sz
      Src: /src/dav1d/src/recon_tmpl.c:416,1
    - Dst: case_sz
      Src: /src/dav1d/src/recon_tmpl.c:417,1
    - Dst: case_sz
      Src: /src/dav1d/src/recon_tmpl.c:418,1
    - Dst: case_sz
      Src: /src/dav1d/src/recon_tmpl.c:419,1
    - Dst: case_sz
      Src: /src/dav1d/src/recon_tmpl.c:420,1
    - Dst: case_sz
      Src: /src/dav1d/src/recon_tmpl.c:421,1
    - Dst: case_sz
      Src: /src/dav1d/src/recon_tmpl.c:422,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:426,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/recon_tmpl.c:432,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:434,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/recon_tmpl.c:436,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:438,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:440,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:444,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/recon_tmpl.c:453,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:469,1
    - Dst: dav1d_msac_decode_hi_tok
      Src: /src/dav1d/src/recon_tmpl.c:473,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:476,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:477,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:494,1
    - Dst: get_lo_ctx
      Src: /src/dav1d/src/recon_tmpl.c:499,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/recon_tmpl.c:502,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:504,1
    - Dst: dav1d_msac_decode_hi_tok
      Src: /src/dav1d/src/recon_tmpl.c:510,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:512,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:513,1
    - Dst: get_lo_ctx
      Src: /src/dav1d/src/recon_tmpl.c:530,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/recon_tmpl.c:531,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:533,1
    - Dst: dav1d_msac_decode_hi_tok
      Src: /src/dav1d/src/recon_tmpl.c:541,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:543,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:544,1
    - Dst: memset
      Src: /src/dav1d/src/recon_tmpl.c:558,1
    - Dst: DECODE_COEFS_CLASS
      Src: /src/dav1d/src/recon_tmpl.c:559,1
    - Dst: memset
      Src: /src/dav1d/src/recon_tmpl.c:566,1
    - Dst: DECODE_COEFS_CLASS
      Src: /src/dav1d/src/recon_tmpl.c:567,1
    - Dst: memset
      Src: /src/dav1d/src/recon_tmpl.c:574,1
    - Dst: DECODE_COEFS_CLASS
      Src: /src/dav1d/src/recon_tmpl.c:575,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:578,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/recon_tmpl.c:581,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:584,1
    - Dst: dav1d_msac_decode_hi_tok
      Src: /src/dav1d/src/recon_tmpl.c:587,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:589,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:590,1
    - Dst: imax
      Src: /src/dav1d/src/recon_tmpl.c:598,1
    - Dst: get_dc_sign_ctx
      Src: /src/dav1d/src/recon_tmpl.c:609,1
    - Dst: dav1d_msac_decode_bool_adapt
      Src: /src/dav1d/src/recon_tmpl.c:611,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:613,1
    - Dst: read_golomb
      Src: /src/dav1d/src/recon_tmpl.c:623,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:625,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:632,1
    - Dst: umin
      Src: /src/dav1d/src/recon_tmpl.c:636,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/recon_tmpl.c:642,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:644,1
    - Dst: read_golomb
      Src: /src/dav1d/src/recon_tmpl.c:650,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:652,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:660,1
    - Dst: umin
      Src: /src/dav1d/src/recon_tmpl.c:664,1
    - Dst: read_golomb
      Src: /src/dav1d/src/recon_tmpl.c:673,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:675,1
    - Dst: umin
      Src: /src/dav1d/src/recon_tmpl.c:680,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:683,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/recon_tmpl.c:691,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:693,1
    - Dst: read_golomb
      Src: /src/dav1d/src/recon_tmpl.c:700,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:702,1
    - Dst: umin
      Src: /src/dav1d/src/recon_tmpl.c:710,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:715,1
    - Dst: umin
      Src: /src/dav1d/src/recon_tmpl.c:726,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 252
    argCount: 11
    argNames:
    - t
    - a
    - l
    - tx
    - bs
    - b
    - intra
    - plane
    - cf
    - txtp
    - res_ctx
    argTypes:
    - Dav1dTaskContext*
    - uint8_t*
    - uint8_t*
    - enum RectTxfmSize
    - enum BlockSize
    - Av1Block*
    - int
    - int
    - coef*
    - enum TxfmType*
    - uint8_t*
    assertStmts:
    - condition: (eob >= 0)
      pos:
        line_end: 439
        line_start: 439
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (dc_dq <= 0xffffff)
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (0)
      pos:
        line_end: 577
        line_start: 577
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (t_dim->max == TX_4X4)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (dc_dq <= cf_max)
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (x < 32 && y < 32)
      pos:
        line_end: 493
        line_start: 493
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (dq <= 0xffffff)
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (dq <= cf_max)
      pos:
        line_end: 714
        line_start: 714
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 729
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 729
    functionName: decode_coefs
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 0
    functionsReached:
    - get_uv_inter_txtp
    - dav1d_msac_decode_symbol_adapt8
    - dav1d_msac_decode_bools
    - memset
    - get_dc_sign_ctx
    - DECODE_COEFS_CLASS
    - imin
    - read_golomb
    - case_sz
    - dav1d_msac_decode_bool_adapt
    - get_skip_ctx
    - dav1d_msac_decode_symbol_adapt16
    - umin
    - printf
    - get_lo_ctx
    - dav1d_msac_decode_hi_tok
    - assert
    - imax
    - dav1d_msac_decode_symbol_adapt4
    - dav1d_msac_decode_bool_equi
    linkageType: ''
    returnType: int
    signature: "int decode_coefs(Dav1dTaskContext *const t,\n                        uint8_t
      *const a, uint8_t *const l,\n                        const enum RectTxfmSize
      tx, const enum BlockSize bs,\n                        const Av1Block *const
      b, const int intra,\n                        const int plane, coef *cf,\n                        enum
      TxfmType *const txtp, uint8_t *res_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - sz
    - ','
    - bin
    - ','
    - ns
    - ','
    - is_1d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: case_sz
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: case_sz(sz, bin, ns, is_1d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tx_class
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 464
    functionName: DECODE_COEFS_CLASS
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_COEFS_CLASS(tx_class)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: read_coef_tree
      Src: /src/dav1d/src/recon_tmpl.c:752,1
    - Dst: read_coef_tree
      Src: /src/dav1d/src/recon_tmpl.c:756,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:762,1
    - Dst: read_coef_tree
      Src: /src/dav1d/src/recon_tmpl.c:763,1
    - Dst: read_coef_tree
      Src: /src/dav1d/src/recon_tmpl.c:767,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:781,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:783,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:783,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:785,1
    - Dst: decode_coefs
      Src: /src/dav1d/src/recon_tmpl.c:788,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:791,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:793,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:793,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:794,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:794,1
    - Dst: case_set_upto16
      Src: /src/dav1d/src/recon_tmpl.c:801,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:811,1
    - Dst: coef_dump
      Src: /src/dav1d/src/recon_tmpl.c:814,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:814,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:814,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:818,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 9
    argNames:
    - t
    - bs
    - b
    - ytx
    - depth
    - tx_split
    - x_off
    - y_off
    - dst
    argTypes:
    - Dav1dTaskContext*
    - enum BlockSize
    - Av1Block*
    - enum RectTxfmSize
    - int
    - uint16_t*
    - int
    - int
    - pixel*
    assertStmts:
    - condition: (ts->frame_thread[p].cf)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (dst)
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 822
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 822
    functionName: read_coef_tree
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 1
    functionsReached:
    - imin
    - bitfn
    - read_coef_tree
    - decode_coefs
    - assert
    - case_set_upto16
    - coef_dump
    - printf
    - dav1d_memset_likely_pow2
    - PXSTRIDE
    - hex_dump
    linkageType: ''
    returnType: void
    signature: "void read_coef_tree(Dav1dTaskContext *const t,\n                           const
      enum BlockSize bs, const Av1Block *const b,\n                           const
      enum RectTxfmSize ytx, const int depth,\n                           const uint16_t
      *const tx_split,\n                           const int x_off, const int y_off,
      pixel *dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rep_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 800
    functionName: set_ctx
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_ctx(rep_macro)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ulog2
      Src: /src/dav1d/src/recon_tmpl.c:844,1
    - Dst: ulog2
      Src: /src/dav1d/src/recon_tmpl.c:845,1
    - Dst: memset_cw
      Src: /src/dav1d/src/recon_tmpl.c:846,1
    - Dst: memset_cw
      Src: /src/dav1d/src/recon_tmpl.c:847,1
    - Dst: memset_ch
      Src: /src/dav1d/src/recon_tmpl.c:848,1
    - Dst: memset_ch
      Src: /src/dav1d/src/recon_tmpl.c:849,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:855,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:855,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:857,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:858,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:864,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:866,1
    - Dst: read_coef_tree
      Src: /src/dav1d/src/recon_tmpl.c:876,1
    - Dst: decode_coefs
      Src: /src/dav1d/src/recon_tmpl.c:882,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:886,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:889,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:889,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:890,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:890,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:891,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:891,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:900,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:901,1
    - Dst: decode_coefs
      Src: /src/dav1d/src/recon_tmpl.c:915,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:920,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:925,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:926,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:927,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:928,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 3
    argNames:
    - t
    - bs
    - b
    argTypes:
    - Dav1dTaskContext*
    - enum BlockSize
    - Av1Block*
    assertStmts:
    - condition: (t->frame_thread.pass == 1)
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (!b->skip)
      pos:
        line_end: 857
        line_start: 857
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 936
      start: 824
    functionDepth: 4
    functionLinenumber: 824
    functionLinenumberEnd: 936
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 0
    functionsReached:
    - ulog2
    - imin
    - read_coef_tree
    - decode_coefs
    - assert
    - memset_cw
    - memset_ch
    - dav1d_memset_likely_pow2
    - printf
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_read_coef_blocks)(Dav1dTaskContext *const t,\n                                    const
      enum BlockSize bs, const Av1Block *const b)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:945,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:971,1
    - Dst: Dav1dFrameContext*::dsp::mc::emu_edge
      Src: /src/dav1d/src/recon_tmpl.c:972,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:979,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:992,1
    - Dst: scale_mv
      Src: /src/dav1d/src/recon_tmpl.c:1001,1
    - Dst: scale_mv
      Src: /src/dav1d/src/recon_tmpl.c:1002,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:1012,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1020,1
    - Dst: Dav1dFrameContext*::dsp::mc::emu_edge
      Src: /src/dav1d/src/recon_tmpl.c:1021,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:1027,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1029,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 13
    argNames:
    - t
    - dst8
    - dst16
    - dst_stride
    - bw4
    - bh4
    - bx
    - by
    - pl
    - mv
    - refp
    - refidx
    - filter_2d
    argTypes:
    - Dav1dTaskContext*
    - pixel*
    - int16_t*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    - int
    - mv
    - Dav1dThreadPicture*
    - int
    - enum Filter2d
    assertStmts:
    - condition: ((dst8 != NULL) ^ (dst16 != NULL))
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (refp != &f->sr_cur)
      pos:
        line_end: 991
        line_start: 991
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 1050
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 1050
    functionName: mc
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 0
    functionsReached:
    - bitfn
    - assert
    - Dav1dFrameContext*::dsp::mc::emu_edge
    - scale_mv
    - printf
    - PXSTRIDE
    linkageType: ''
    returnType: int
    signature: "int mc(Dav1dTaskContext *const t,\n              pixel *const dst8,
      int16_t *const dst16, const ptrdiff_t dst_stride,\n              const int bw4,
      const int bh4,\n              const int bx, const int by, const int pl,\n              const
      mv mv, const Dav1dThreadPicture *const refp, const int refidx,\n              const
      enum Filter2d filter_2d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - res
    - ','
    - val
    - ','
    - scale
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1000
    functionName: scale_mv
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scale_mv(res, val, scale)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:1057,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1060,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1069,1
    - Dst: iclip
      Src: /src/dav1d/src/recon_tmpl.c:1073,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1076,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1077,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1078,1
    - Dst: Dav1dFrameContext*::dsp::mc::blend_h
      Src: /src/dav1d/src/recon_tmpl.c:1083,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1092,1
    - Dst: iclip
      Src: /src/dav1d/src/recon_tmpl.c:1096,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1099,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1100,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1101,1
    - Dst: Dav1dFrameContext*::dsp::mc::blend_v
      Src: /src/dav1d/src/recon_tmpl.c:1106,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1106,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 9
    argNames:
    - t
    - dst
    - dst_stride
    - b_dim
    - pl
    - bx4
    - by4
    - w4
    - h4
    argTypes:
    - Dav1dTaskContext*
    - pixel*
    - ptrdiff_t
    - uint8_t*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (!(t->bx & 1) && !(t->by & 1))
      pos:
        line_end: 1056
        line_start: 1056
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 1113
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1113
    functionName: obmc
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 0
    functionsReached:
    - imin
    - bitfn
    - mc
    - assert
    - Dav1dFrameContext*::dsp::mc::blend_h
    - PXSTRIDE
    - iclip
    - Dav1dFrameContext*::dsp::mc::blend_v
    linkageType: ''
    returnType: int
    signature: "int obmc(Dav1dTaskContext *const t,\n                pixel *const
      dst, const ptrdiff_t dst_stride,\n                const uint8_t *const b_dim,
      const int pl,\n                const int bx4, const int by4, const int w4, const
      int h4)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:1121,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:1127,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1154,1
    - Dst: Dav1dFrameContext*::dsp::mc::emu_edge
      Src: /src/dav1d/src/recon_tmpl.c:1155,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1161,1
    - Dst: Dav1dDSPContext*::mc::warp8x8t
      Src: /src/dav1d/src/recon_tmpl.c:1164,1
    - Dst: Dav1dDSPContext*::mc::warp8x8
      Src: /src/dav1d/src/recon_tmpl.c:1167,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1170,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 8
    argNames:
    - t
    - dst8
    - dst16
    - dstride
    - b_dim
    - pl
    - refp
    - wmp
    argTypes:
    - Dav1dTaskContext*
    - pixel*
    - int16_t*
    - ptrdiff_t
    - uint8_t*
    - int
    - Dav1dThreadPicture*
    - Dav1dWarpedMotionParams*
    assertStmts:
    - condition: ((dst8 != NULL) ^ (dst16 != NULL))
      pos:
        line_end: 1120
        line_start: 1120
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (!((b_dim[0] * h_mul) & 7) && !((b_dim[1] * v_mul) & 7))
      pos:
        line_end: 1126
        line_start: 1126
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 1174
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1174
    functionName: warp_affine
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 0
    functionsReached:
    - bitfn
    - assert
    - Dav1dFrameContext*::dsp::mc::emu_edge
    - Dav1dDSPContext*::mc::warp8x8t
    - Dav1dDSPContext*::mc::warp8x8
    - PXSTRIDE
    linkageType: ''
    returnType: int
    signature: "int warp_affine(Dav1dTaskContext *const t,\n                       pixel
      *dst8, int16_t *dst16, const ptrdiff_t dstride,\n                       const
      uint8_t *const b_dim, const int pl,\n                       const Dav1dThreadPicture
      *const refp,\n                       const Dav1dWarpedMotionParams *const wmp)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1189,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1189,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1198,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1204,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1205,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1209,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:1213,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:1222,1
    - Dst: Dav1dFrameContext*::dsp::ipred::pal_pred
      Src: /src/dav1d/src/recon_tmpl.c:1223,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1226,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1226,1
    - Dst: sm_flag
      Src: /src/dav1d/src/recon_tmpl.c:1230,1
    - Dst: sm_flag
      Src: /src/dav1d/src/recon_tmpl.c:1231,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1238,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1243,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:1263,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1283,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1285,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1286,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1288,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1301,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1301,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1306,1
    - Dst: decode_coefs
      Src: /src/dav1d/src/recon_tmpl.c:1307,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:1311,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:1313,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1313,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:1314,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1314,1
    - Dst: coef_dump
      Src: /src/dav1d/src/recon_tmpl.c:1318,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1318,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1319,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1325,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:1343,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1347,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1349,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:1374,1
    - Dst: ac_dump
      Src: /src/dav1d/src/recon_tmpl.c:1389,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1390,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1391,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1395,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:1400,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:1406,1
    - Dst: Dav1dFrameContext*::dsp::ipred::pal_pred
      Src: /src/dav1d/src/recon_tmpl.c:1410,1
    - Dst: Dav1dFrameContext*::dsp::ipred::pal_pred
      Src: /src/dav1d/src/recon_tmpl.c:1413,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1417,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1418,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1420,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1421,1
    - Dst: sm_uv_flag
      Src: /src/dav1d/src/recon_tmpl.c:1426,1
    - Dst: sm_uv_flag
      Src: /src/dav1d/src/recon_tmpl.c:1427,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1434,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1440,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:1474,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1495,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1497,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1498,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1500,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1518,1
    - Dst: decode_coefs
      Src: /src/dav1d/src/recon_tmpl.c:1519,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:1524,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1527,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1528,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:1529,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:1530,1
    - Dst: coef_dump
      Src: /src/dav1d/src/recon_tmpl.c:1534,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1540,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 158
    argCount: 4
    argNames:
    - t
    - bs
    - intra_edge_flags
    - b
    argTypes:
    - Dav1dTaskContext*
    - enum BlockSize
    - enum EdgeFlags
    - Av1Block*
    assertStmts:
    - condition: (ts->frame_thread[p].pal_idx)
      pos:
        line_end: 1212
        line_start: 1212
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (!init_x && !init_y)
      pos:
        line_end: 1342
        line_start: 1342
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (ts->frame_thread[p].pal_idx)
      pos:
        line_end: 1399
        line_start: 1399
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 1555
      start: 1176
    functionDepth: 3
    functionLinenumber: 1176
    functionLinenumberEnd: 1555
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 1
    functionsReached:
    - imin
    - bitfn
    - bytefn
    - ac_dump
    - decode_coefs
    - Dav1dFrameContext*::dsp::ipred::pal_pred
    - sm_flag
    - assert
    - coef_dump
    - sm_uv_flag
    - printf
    - dav1d_memset_likely_pow2
    - PXSTRIDE
    - hex_dump
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_recon_b_intra)(Dav1dTaskContext *const t, const
      enum BlockSize bs,\n                                 const enum EdgeFlags intra_edge_flags,\n
      \                                const Av1Block *const b)"
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1569,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1569,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1580,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1582,1
    - Dst: IS_KEY_OR_INTRA
      Src: /src/dav1d/src/recon_tmpl.c:1583,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:1585,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1586,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1590,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1600,1
    - Dst: warp_affine
      Src: /src/dav1d/src/recon_tmpl.c:1604,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1609,1
    - Dst: obmc
      Src: /src/dav1d/src/recon_tmpl.c:1613,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1618,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1621,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:1629,1
    - Dst: Dav1dDSPContext*::mc::blend
      Src: /src/dav1d/src/recon_tmpl.c:1638,1
    - Dst: II_MASK
      Src: /src/dav1d/src/recon_tmpl.c:1639,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:1648,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:1658,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1662,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1672,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1679,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1694,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1703,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1706,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1712,1
    - Dst: warp_affine
      Src: /src/dav1d/src/recon_tmpl.c:1717,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1725,1
    - Dst: obmc
      Src: /src/dav1d/src/recon_tmpl.c:1732,1
    - Dst: II_MASK
      Src: /src/dav1d/src/recon_tmpl.c:1742,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1745,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1746,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:1758,1
    - Dst: Dav1dDSPContext*::mc::blend
      Src: /src/dav1d/src/recon_tmpl.c:1773,1
    - Dst: warp_affine
      Src: /src/dav1d/src/recon_tmpl.c:1793,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1797,1
    - Dst: Dav1dDSPContext*::mc::avg
      Src: /src/dav1d/src/recon_tmpl.c:1804,1
    - Dst: Dav1dDSPContext*::mc::w_avg
      Src: /src/dav1d/src/recon_tmpl.c:1809,1
    - Dst: WEDGE_MASK
      Src: /src/dav1d/src/recon_tmpl.c:1820,1
    - Dst: Dav1dDSPContext*::mc::mask
      Src: /src/dav1d/src/recon_tmpl.c:1821,1
    - Dst: WEDGE_MASK
      Src: /src/dav1d/src/recon_tmpl.c:1825,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1834,1
    - Dst: warp_affine
      Src: /src/dav1d/src/recon_tmpl.c:1836,1
    - Dst: mc
      Src: /src/dav1d/src/recon_tmpl.c:1841,1
    - Dst: Dav1dDSPContext*::mc::avg
      Src: /src/dav1d/src/recon_tmpl.c:1849,1
    - Dst: Dav1dDSPContext*::mc::w_avg
      Src: /src/dav1d/src/recon_tmpl.c:1854,1
    - Dst: Dav1dDSPContext*::mc::mask
      Src: /src/dav1d/src/recon_tmpl.c:1860,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1870,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1872,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1874,1
    - Dst: ulog2
      Src: /src/dav1d/src/recon_tmpl.c:1887,1
    - Dst: ulog2
      Src: /src/dav1d/src/recon_tmpl.c:1888,1
    - Dst: memset_cw
      Src: /src/dav1d/src/recon_tmpl.c:1889,1
    - Dst: memset_cw
      Src: /src/dav1d/src/recon_tmpl.c:1890,1
    - Dst: memset_ch
      Src: /src/dav1d/src/recon_tmpl.c:1891,1
    - Dst: memset_ch
      Src: /src/dav1d/src/recon_tmpl.c:1892,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1905,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1906,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1910,1
    - Dst: read_coef_tree
      Src: /src/dav1d/src/recon_tmpl.c:1913,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1917,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1921,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1927,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1929,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1933,1
    - Dst: bitfn
      Src: /src/dav1d/src/recon_tmpl.c:1947,1
    - Dst: decode_coefs
      Src: /src/dav1d/src/recon_tmpl.c:1950,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:1955,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1958,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:1959,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:1960,1
    - Dst: dav1d_memset_likely_pow2
      Src: /src/dav1d/src/recon_tmpl.c:1961,1
    - Dst: coef_dump
      Src: /src/dav1d/src/recon_tmpl.c:1965,1
    - Dst: hex_dump
      Src: /src/dav1d/src/recon_tmpl.c:1971,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1976,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 244
    argCount: 3
    argNames:
    - t
    - bs
    - b
    argTypes:
    - Dav1dTaskContext*
    - enum BlockSize
    - Av1Block*
    assertStmts:
    - condition: (ss_hor == 1)
      pos:
        line_end: 1647
        line_start: 1647
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (!f->frame_hdr->super_res.enabled)
      pos:
        line_end: 1584
        line_start: 1584
        source_file: /src/dav1d/src/recon_tmpl.c
    - condition: (ss_hor == 1)
      pos:
        line_end: 1657
        line_start: 1657
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 1985
      start: 1557
    functionDepth: 4
    functionLinenumber: 1557
    functionLinenumberEnd: 1985
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 2
    functionsReached:
    - decode_coefs
    - WEDGE_MASK
    - hex_dump
    - Dav1dDSPContext*::mc::blend
    - imin
    - bitfn
    - IS_KEY_OR_INTRA
    - read_coef_tree
    - mc
    - memset_cw
    - dav1d_memset_likely_pow2
    - Dav1dDSPContext*::mc::mask
    - ulog2
    - Dav1dDSPContext*::mc::avg
    - warp_affine
    - printf
    - II_MASK
    - Dav1dDSPContext*::mc::w_avg
    - obmc
    - bytefn
    - assert
    - coef_dump
    - memset_ch
    - PXSTRIDE
    linkageType: ''
    returnType: int
    signature: "int bytefn(dav1d_recon_b_inter)(Dav1dTaskContext *const t, const enum
      BlockSize bs,\n                                const Av1Block *const b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1996,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1997,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:1998,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2001,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - f
    - sby
    argTypes:
    - Dav1dFrameContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1987
    functionDepth: 1
    functionLinenumber: 1987
    functionLinenumberEnd: 2003
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 3
    functionsReached:
    - PXSTRIDE
    - bytefn
    linkageType: ''
    returnType: void
    signature: void bytefn(dav1d_filter_sbrow_deblock_cols)(Dav1dFrameContext *const
      f, const int sby)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2009,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2010,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2011,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2017,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2021,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - f
    - sby
    argTypes:
    - Dav1dFrameContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2005
    functionDepth: 1
    functionLinenumber: 2005
    functionLinenumberEnd: 2023
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 4
    functionsReached:
    - PXSTRIDE
    - bytefn
    linkageType: ''
    returnType: void
    signature: void bytefn(dav1d_filter_sbrow_deblock_rows)(Dav1dFrameContext *const
      f, const int sby)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2032,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2033,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2034,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2042,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2043,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2044,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2046,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:2049,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2050,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tc
    - sby
    argTypes:
    - Dav1dTaskContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2025
    functionDepth: 1
    functionLinenumber: 2025
    functionLinenumberEnd: 2051
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 5
    functionsReached:
    - PXSTRIDE
    - imin
    - bytefn
    linkageType: ''
    returnType: void
    signature: void bytefn(dav1d_filter_sbrow_cdef)(Dav1dTaskContext *const tc, const
      int sby)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2058,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2059,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2060,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2063,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2064,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2065,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2072,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2074,1
    - Dst: Dav1dFrameContext*::dsp::mc::resize
      Src: /src/dav1d/src/recon_tmpl.c:2081,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:2082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - f
    - sby
    argTypes:
    - Dav1dFrameContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2086
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 5
    functionsReached:
    - PXSTRIDE
    - imin
    - Dav1dFrameContext*::dsp::mc::resize
    linkageType: ''
    returnType: void
    signature: void bytefn(dav1d_filter_sbrow_resize)(Dav1dFrameContext *const f,
      const int sby)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2093,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2094,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2095,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - f
    - sby
    argTypes:
    - Dav1dFrameContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2098
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 6
    functionsReached:
    - PXSTRIDE
    - bytefn
    linkageType: ''
    returnType: void
    signature: void bytefn(dav1d_filter_sbrow_lr)(Dav1dFrameContext *const f, const
      int sby)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2101,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2102,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2104,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2106,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - f
    - sby
    argTypes:
    - Dav1dFrameContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2100
    functionDepth: 0
    functionLinenumber: 2100
    functionLinenumberEnd: 2109
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 7
    functionsReached:
    - bytefn
    linkageType: ''
    returnType: void
    signature: void bytefn(dav1d_filter_sbrow)(Dav1dFrameContext *const f, const int
      sby)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2120,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/recon_tmpl.c:2121,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/recon_tmpl.c:2129,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/recon_tmpl.c:2131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - Dav1dTaskContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2111
    functionDepth: 1
    functionLinenumber: 2111
    functionLinenumberEnd: 2135
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 7
    functionsReached:
    - PXSTRIDE
    - pixel_copy
    linkageType: ''
    returnType: void
    signature: void bytefn(dav1d_backup_ipred_edge)(Dav1dTaskContext *const t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2146,1
    - Dst: memcpy
      Src: /src/dav1d/src/recon_tmpl.c:2148,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2148,1
    - Dst: memcpy
      Src: /src/dav1d/src/recon_tmpl.c:2150,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - t
    - bx4
    - by4
    - bw4
    - bh4
    argTypes:
    - Dav1dTaskContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2137
    functionDepth: 0
    functionLinenumber: 2137
    functionLinenumberEnd: 2151
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 8
    functionsReached:
    - memcpy
    - bytefn
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_copy_pal_block_y)(Dav1dTaskContext *const t,\n                                    const
      int bx4, const int by4,\n                                    const int bw4,
      const int bh4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2162,1
    - Dst: memcpy
      Src: /src/dav1d/src/recon_tmpl.c:2166,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2166,1
    - Dst: memcpy
      Src: /src/dav1d/src/recon_tmpl.c:2168,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - t
    - bx4
    - by4
    - bw4
    - bh4
    argTypes:
    - Dav1dTaskContext*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2153
    functionDepth: 0
    functionLinenumber: 2153
    functionLinenumberEnd: 2170
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 9
    functionsReached:
    - memcpy
    - bytefn
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_copy_pal_block_uv)(Dav1dTaskContext *const t,\n
      \                                    const int bx4, const int by4,\n                                     const
      int bw4, const int bh4)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_msac_decode_symbol_adapt8
      Src: /src/dav1d/src/recon_tmpl.c:2178,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2185,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2186,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/recon_tmpl.c:2223,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2231,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/recon_tmpl.c:2234,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/recon_tmpl.c:2237,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/recon_tmpl.c:2241,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:2242,1
    - Dst: imin
      Src: /src/dav1d/src/recon_tmpl.c:2248,1
    - Dst: ulog2
      Src: /src/dav1d/src/recon_tmpl.c:2248,1
    - Dst: assert
      Src: /src/dav1d/src/recon_tmpl.c:2258,1
    - Dst: memcpy
      Src: /src/dav1d/src/recon_tmpl.c:2263,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:2267,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:2270,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:2271,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:2273,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:2274,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 67
    argCount: 6
    argNames:
    - t
    - b
    - pl
    - sz_ctx
    - bx4
    - by4
    argTypes:
    - Dav1dTaskContext*
    - Av1Block*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (m < pal_sz)
      pos:
        line_end: 2257
        line_start: 2257
        source_file: /src/dav1d/src/recon_tmpl.c
    constantsTouched: []
    func_position:
      end: 2276
      start: 2172
    functionDepth: 1
    functionLinenumber: 2172
    functionLinenumberEnd: 2276
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 10
    functionsReached:
    - ulog2
    - memcpy
    - imin
    - bytefn
    - dav1d_msac_decode_symbol_adapt8
    - dav1d_msac_decode_bools
    - assert
    - printf
    - dav1d_msac_decode_bool_equi
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_read_pal_plane)(Dav1dTaskContext *const t, Av1Block
      *const b,\n                                  const int pl, const int sz_ctx,\n
      \                                 const int bx4, const int by4)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2281,1
    - Dst: bytefn
      Src: /src/dav1d/src/recon_tmpl.c:2289,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/recon_tmpl.c:2291,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/recon_tmpl.c:2292,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/recon_tmpl.c:2293,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/recon_tmpl.c:2296,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/recon_tmpl.c:2297,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/recon_tmpl.c:2302,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:2305,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:2307,1
    - Dst: printf
      Src: /src/dav1d/src/recon_tmpl.c:2308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - t
    - b
    - sz_ctx
    - bx4
    - by4
    argTypes:
    - Dav1dTaskContext*
    - Av1Block*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2278
    functionDepth: 1
    functionLinenumber: 2278
    functionLinenumberEnd: 2310
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/recon_tmpl.c
    functionUses: 11
    functionsReached:
    - printf
    - dav1d_msac_decode_bools
    - bytefn
    - dav1d_msac_decode_bool_equi
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_read_pal_uv)(Dav1dTaskContext *const t, Av1Block
      *const b,\n                               const int sz_ctx, const int bx4, const
      int by4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_init_cpu
      Src: /src/dav1d/src/lib.c:54,1
    - Dst: dav1d_init_ii_wedge_masks
      Src: /src/dav1d/src/lib.c:55,1
    - Dst: dav1d_init_intra_edge_tree
      Src: /src/dav1d/src/lib.c:56,1
    - Dst: dav1d_init_qm_tables
      Src: /src/dav1d/src/lib.c:57,1
    - Dst: dav1d_init_thread
      Src: /src/dav1d/src/lib.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: init_internal
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - dav1d_init_qm_tables
    - dav1d_init_intra_edge_tree
    - dav1d_init_thread
    - dav1d_init_ii_wedge_masks
    - dav1d_init_cpu
    linkageType: ''
    returnType: COLD
    signature: COLD init_internal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: dav1d_version
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: COLD
    signature: COLD *dav1d_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: dav1d_version_api
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_version_api(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - Dav1dSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: dav1d_default_settings
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_default_settings(Dav1dSettings *const s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/dav1d/src/lib.c:100,1
    - Dst: get_minstack
      Src: /src/dav1d/src/lib.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - thread_attr
    argTypes:
    - pthread_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: get_stack_size_internal
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - get_minstack
    - dlsym
    linkageType: ''
    returnType: COLD
    signature: COLD get_stack_size_internal(const pthread_attr_t *const thread_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: get_stack_size_internal
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_stack_size_internal(attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iclip
      Src: /src/dav1d/src/lib.c:123,1
    - Dst: dav1d_num_logical_processors
      Src: /src/dav1d/src/lib.c:123,1
    - Dst: umin
      Src: /src/dav1d/src/lib.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - c
    - s
    - n_tc
    - n_fc
    argTypes:
    - Dav1dContext*
    - Dav1dSettings*
    - unsigned*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: get_num_threads
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - iclip
    - umin
    - dav1d_num_logical_processors
    linkageType: ''
    returnType: COLD
    signature: "COLD get_num_threads(Dav1dContext *const c, const Dav1dSettings *const
      s,\n                                 unsigned *n_tc, unsigned *n_fc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:130,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:130,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:131,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:132,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:133,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:134,1
    - Dst: get_num_threads
      Src: /src/dav1d/src/lib.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - Dav1dSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: dav1d_get_frame_delay
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - validate_input_or_ret
    - DAV1D_ERR
    - get_num_threads
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_get_frame_delay(const Dav1dSettings *const s)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/dav1d/src/lib.c:142,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:144,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:144,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:145,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:145,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:146,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:147,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:148,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:149,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:150,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:151,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:152,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:153,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:154,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:155,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:156,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:157,1
    - Dst: pthread_attr_init
      Src: /src/dav1d/src/lib.c:160,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:160,1
    - Dst: get_stack_size_internal
      Src: /src/dav1d/src/lib.c:161,1
    - Dst: pthread_attr_setstacksize
      Src: /src/dav1d/src/lib.c:163,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/lib.c:165,1
    - Dst: memset
      Src: /src/dav1d/src/lib.c:167,1
    - Dst: dav1d_data_props_set_defaults
      Src: /src/dav1d/src/lib.c:180,1
    - Dst: dav1d_mem_pool_init
      Src: /src/dav1d/src/lib.c:182,1
    - Dst: dav1d_mem_pool_init
      Src: /src/dav1d/src/lib.c:183,1
    - Dst: dav1d_mem_pool_init
      Src: /src/dav1d/src/lib.c:184,1
    - Dst: dav1d_mem_pool_init
      Src: /src/dav1d/src/lib.c:185,1
    - Dst: dav1d_mem_pool_init
      Src: /src/dav1d/src/lib.c:186,1
    - Dst: dav1d_mem_pool_init
      Src: /src/dav1d/src/lib.c:187,1
    - Dst: dav1d_mem_pool_init
      Src: /src/dav1d/src/lib.c:196,1
    - Dst: dav1d_log
      Src: /src/dav1d/src/lib.c:211,1
    - Dst: atomic_init
      Src: /src/dav1d/src/lib.c:216,1
    - Dst: get_num_threads
      Src: /src/dav1d/src/lib.c:218,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/lib.c:220,1
    - Dst: memset
      Src: /src/dav1d/src/lib.c:222,1
    - Dst: dav1d_alloc_aligned
      Src: /src/dav1d/src/lib.c:224,1
    - Dst: memset
      Src: /src/dav1d/src/lib.c:226,1
    - Dst: pthread_mutex_init
      Src: /src/dav1d/src/lib.c:228,1
    - Dst: pthread_cond_init
      Src: /src/dav1d/src/lib.c:229,1
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/lib.c:230,1
    - Dst: pthread_cond_init
      Src: /src/dav1d/src/lib.c:233,1
    - Dst: pthread_cond_destroy
      Src: /src/dav1d/src/lib.c:234,1
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/lib.c:235,1
    - Dst: atomic_init
      Src: /src/dav1d/src/lib.c:239,1
    - Dst: atomic_init
      Src: /src/dav1d/src/lib.c:240,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/lib.c:247,1
    - Dst: memset
      Src: /src/dav1d/src/lib.c:249,1
    - Dst: pthread_mutex_init
      Src: /src/dav1d/src/lib.c:254,1
    - Dst: pthread_cond_init
      Src: /src/dav1d/src/lib.c:255,1
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/lib.c:256,1
    - Dst: pthread_mutex_init
      Src: /src/dav1d/src/lib.c:259,1
    - Dst: pthread_cond_destroy
      Src: /src/dav1d/src/lib.c:260,1
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/lib.c:261,1
    - Dst: memset
      Src: /src/dav1d/src/lib.c:275,1
    - Dst: pthread_mutex_init
      Src: /src/dav1d/src/lib.c:277,1
    - Dst: pthread_cond_init
      Src: /src/dav1d/src/lib.c:278,1
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/lib.c:279,1
    - Dst: pthread_create
      Src: /src/dav1d/src/lib.c:282,1
    - Dst: pthread_cond_destroy
      Src: /src/dav1d/src/lib.c:283,1
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/lib.c:284,1
    - Dst: dav1d_pal_dsp_init
      Src: /src/dav1d/src/lib.c:290,1
    - Dst: dav1d_refmvs_dsp_init
      Src: /src/dav1d/src/lib.c:291,1
    - Dst: pthread_attr_destroy
      Src: /src/dav1d/src/lib.c:293,1
    - Dst: close_internal
      Src: /src/dav1d/src/lib.c:298,1
    - Dst: pthread_attr_destroy
      Src: /src/dav1d/src/lib.c:299,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:300,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 144
    argCount: 2
    argNames:
    - c_out
    - s
    argTypes:
    - Dav1dContext**
    - Dav1dSettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 301
    functionName: dav1d_open
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 2
    functionsReached:
    - pthread_cond_init
    - dav1d_mem_pool_init
    - memset
    - atomic_init
    - close_internal
    - pthread_attr_destroy
    - pthread_attr_init
    - validate_input_or_ret
    - DAV1D_ERR
    - dav1d_data_props_set_defaults
    - pthread_attr_setstacksize
    - pthread_create
    - pthread_mutex_init
    - dav1d_malloc
    - get_num_threads
    - pthread_once
    - get_stack_size_internal
    - pthread_mutex_destroy
    - dav1d_log
    - dav1d_refmvs_dsp_init
    - pthread_cond_destroy
    - dav1d_alloc_aligned
    - dav1d_pal_dsp_init
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_open(Dav1dContext **const c_out, const Dav1dSettings *const
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - pic
    argTypes:
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: has_grain
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_grain(const Dav1dPicture *const pic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_grain
      Src: /src/dav1d/src/lib.c:317,1
    - Dst: dav1d_picture_move_ref
      Src: /src/dav1d/src/lib.c:318,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:319,1
    - Dst: dav1d_apply_grain
      Src: /src/dav1d/src/lib.c:323,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:324,1
    - Dst: dav1d_thread_picture_move_ref
      Src: /src/dav1d/src/lib.c:327,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - c
    - out
    argTypes:
    - Dav1dContext*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 330
    functionName: output_image
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - dav1d_thread_picture_unref
    - has_grain
    - dav1d_picture_move_ref
    - dav1d_apply_grain
    - dav1d_thread_picture_move_ref
    linkageType: ''
    returnType: int
    signature: int output_image(Dav1dContext *const c, Dav1dPicture *const out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:339,1
    - Dst: dav1d_thread_picture_move_ref
      Src: /src/dav1d/src/lib.c:340,1
    - Dst: dav1d_thread_picture_move_ref
      Src: /src/dav1d/src/lib.c:345,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - c
    - drain
    argTypes:
    - Dav1dContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 351
    functionName: output_picture_ready
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - dav1d_thread_picture_unref
    - dav1d_thread_picture_move_ref
    linkageType: ''
    returnType: int
    signature: int output_picture_ready(Dav1dContext *const c, const int drain)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/lib.c:359,1
    - Dst: pthread_cond_wait
      Src: /src/dav1d/src/lib.c:361,1
    - Dst: atomic_load
      Src: /src/dav1d/src/lib.c:365,1
    - Dst: atomic_load
      Src: /src/dav1d/src/lib.c:366,1
    - Dst: atomic_fetch_add
      Src: /src/dav1d/src/lib.c:368,1
    - Dst: atomic_store
      Src: /src/dav1d/src/lib.c:370,1
    - Dst: atomic_compare_exchange_strong
      Src: /src/dav1d/src/lib.c:371,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/lib.c:377,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/lib.c:382,1
    - Dst: dav1d_data_props_copy
      Src: /src/dav1d/src/lib.c:386,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:387,1
    - Dst: atomic_load_explicit
      Src: /src/dav1d/src/lib.c:392,1
    - Dst: dav1d_thread_picture_ref
      Src: /src/dav1d/src/lib.c:397,1
    - Dst: dav1d_picture_get_event_flags
      Src: /src/dav1d/src/lib.c:398,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:400,1
    - Dst: output_picture_ready
      Src: /src/dav1d/src/lib.c:401,1
    - Dst: output_image
      Src: /src/dav1d/src/lib.c:402,1
    - Dst: output_picture_ready
      Src: /src/dav1d/src/lib.c:406,1
    - Dst: output_image
      Src: /src/dav1d/src/lib.c:407,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:409,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - c
    - out
    argTypes:
    - Dav1dContext*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 410
    functionName: drain_picture
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_cond_wait
    - dav1d_thread_picture_unref
    - atomic_load_explicit
    - atomic_fetch_add
    - dav1d_thread_picture_ref
    - dav1d_picture_get_event_flags
    - dav1d_data_props_copy
    - pthread_mutex_unlock
    - atomic_load
    - atomic_compare_exchange_strong
    - DAV1D_ERR
    - output_picture_ready
    - output_image
    - atomic_store
    linkageType: ''
    returnType: int
    signature: int drain_picture(Dav1dContext *const c, Dav1dPicture *const out)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output_picture_ready
      Src: /src/dav1d/src/lib.c:416,1
    - Dst: dav1d_parse_obus
      Src: /src/dav1d/src/lib.c:420,1
    - Dst: dav1d_data_unref_internal
      Src: /src/dav1d/src/lib.c:422,1
    - Dst: assert
      Src: /src/dav1d/src/lib.c:424,1
    - Dst: dav1d_data_unref_internal
      Src: /src/dav1d/src/lib.c:427,1
    - Dst: output_picture_ready
      Src: /src/dav1d/src/lib.c:429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dContext*
    assertStmts:
    - condition: ((size_t)res <= in->sz)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/dav1d/src/lib.c
    constantsTouched: []
    func_position:
      end: 436
      start: 412
    functionDepth: 11
    functionLinenumber: 412
    functionLinenumberEnd: 436
    functionName: gen_picture
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - dav1d_data_unref_internal
    - assert
    - dav1d_parse_obus
    - output_picture_ready
    linkageType: ''
    returnType: int
    signature: int gen_picture(Dav1dContext *const c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:440,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:440,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:441,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:441,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:444,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:444,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:448,1
    - Dst: dav1d_data_ref
      Src: /src/dav1d/src/lib.c:449,1
    - Dst: gen_picture
      Src: /src/dav1d/src/lib.c:451,1
    - Dst: dav1d_data_unref_internal
      Src: /src/dav1d/src/lib.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - c
    - in
    argTypes:
    - Dav1dContext*
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 438
    functionDepth: 12
    functionLinenumber: 438
    functionLinenumberEnd: 456
    functionName: dav1d_send_data
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 2
    functionsReached:
    - gen_picture
    - validate_input_or_ret
    - dav1d_data_unref_internal
    - dav1d_data_ref
    - DAV1D_ERR
    linkageType: ''
    returnType: int
    signature: int dav1d_send_data(Dav1dContext *const c, Dav1dData *const in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:460,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:460,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:461,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:461,1
    - Dst: gen_picture
      Src: /src/dav1d/src/lib.c:466,1
    - Dst: output_picture_ready
      Src: /src/dav1d/src/lib.c:476,1
    - Dst: output_image
      Src: /src/dav1d/src/lib.c:477,1
    - Dst: drain_picture
      Src: /src/dav1d/src/lib.c:480,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - c
    - out
    argTypes:
    - Dav1dContext*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 458
    functionDepth: 12
    functionLinenumber: 458
    functionLinenumberEnd: 483
    functionName: dav1d_get_picture
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 2
    functionsReached:
    - gen_picture
    - validate_input_or_ret
    - drain_picture
    - DAV1D_ERR
    - output_picture_ready
    - output_image
    linkageType: ''
    returnType: int
    signature: int dav1d_get_picture(Dav1dContext *const c, Dav1dPicture *const out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:488,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:488,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:489,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:489,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:490,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:490,1
    - Dst: has_grain
      Src: /src/dav1d/src/lib.c:492,1
    - Dst: dav1d_picture_ref
      Src: /src/dav1d/src/lib.c:493,1
    - Dst: dav1d_picture_alloc_copy
      Src: /src/dav1d/src/lib.c:497,1
    - Dst: dav1d_task_delayed_fg
      Src: /src/dav1d/src/lib.c:501,1
    - Dst: dav1d_apply_grain_8bpc
      Src: /src/dav1d/src/lib.c:506,1
    - Dst: dav1d_apply_grain_16bpc
      Src: /src/dav1d/src/lib.c:512,1
    - Dst: abort
      Src: /src/dav1d/src/lib.c:515,1
    - Dst: dav1d_picture_unref_internal
      Src: /src/dav1d/src/lib.c:522,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - c
    - out
    - in
    argTypes:
    - Dav1dContext*
    - Dav1dPicture*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 485
    functionDepth: 4
    functionLinenumber: 485
    functionLinenumberEnd: 524
    functionName: dav1d_apply_grain
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 1
    functionsReached:
    - dav1d_picture_unref_internal
    - validate_input_or_ret
    - has_grain
    - dav1d_task_delayed_fg
    - dav1d_picture_ref
    - dav1d_apply_grain_16bpc
    - dav1d_apply_grain_8bpc
    - dav1d_picture_alloc_copy
    - abort
    - DAV1D_ERR
    linkageType: ''
    returnType: int
    signature: "int dav1d_apply_grain(Dav1dContext *const c, Dav1dPicture *const out,\n
      \                     const Dav1dPicture *const in)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_data_unref_internal
      Src: /src/dav1d/src/lib.c:527,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:529,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:531,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:538,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:539,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:540,1
    - Dst: dav1d_cdf_thread_unref
      Src: /src/dav1d/src/lib.c:541,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:545,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:551,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:552,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:553,1
    - Dst: dav1d_data_props_unref_internal
      Src: /src/dav1d/src/lib.c:555,1
    - Dst: atomic_store
      Src: /src/dav1d/src/lib.c:558,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/lib.c:561,1
    - Dst: pthread_cond_wait
      Src: /src/dav1d/src/lib.c:566,1
    - Dst: atomic_init
      Src: /src/dav1d/src/lib.c:575,1
    - Dst: atomic_init
      Src: /src/dav1d/src/lib.c:577,1
    - Dst: atomic_store
      Src: /src/dav1d/src/lib.c:579,1
    - Dst: atomic_store
      Src: /src/dav1d/src/lib.c:580,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/lib.c:581,1
    - Dst: dav1d_decode_frame_exit
      Src: /src/dav1d/src/lib.c:588,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:594,1
    - Dst: atomic_store
      Src: /src/dav1d/src/lib.c:599,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 526
    functionDepth: 5
    functionLinenumber: 526
    functionLinenumberEnd: 600
    functionName: dav1d_flush
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_lock
    - pthread_cond_wait
    - dav1d_cdf_thread_unref
    - dav1d_thread_picture_unref
    - dav1d_ref_dec
    - dav1d_data_unref_internal
    - atomic_init
    - dav1d_data_props_unref_internal
    - pthread_mutex_unlock
    - dav1d_decode_frame_exit
    - atomic_store
    linkageType: ''
    returnType: void
    signature: void dav1d_flush(Dav1dContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_input
      Src: /src/dav1d/src/lib.c:603,1
    - Dst: dav1d_log_alloc_stats
      Src: /src/dav1d/src/lib.c:605,1
    - Dst: close_internal
      Src: /src/dav1d/src/lib.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c_out
    argTypes:
    - Dav1dContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 608
    functionName: dav1d_close
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 2
    functionsReached:
    - dav1d_log_alloc_stats
    - validate_input
    - close_internal
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_close(Dav1dContext **const c_out)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_flush
      Src: /src/dav1d/src/lib.c:614,1
    - Dst: pthread_mutex_lock
      Src: /src/dav1d/src/lib.c:619,1
    - Dst: pthread_cond_broadcast
      Src: /src/dav1d/src/lib.c:622,1
    - Dst: pthread_mutex_unlock
      Src: /src/dav1d/src/lib.c:623,1
    - Dst: pthread_join
      Src: /src/dav1d/src/lib.c:627,1
    - Dst: pthread_cond_destroy
      Src: /src/dav1d/src/lib.c:628,1
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/lib.c:629,1
    - Dst: pthread_cond_destroy
      Src: /src/dav1d/src/lib.c:631,1
    - Dst: pthread_cond_destroy
      Src: /src/dav1d/src/lib.c:632,1
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/lib.c:633,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:635,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:643,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:644,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:645,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:646,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:647,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:648,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:649,1
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/lib.c:652,1
    - Dst: pthread_cond_destroy
      Src: /src/dav1d/src/lib.c:653,1
    - Dst: pthread_mutex_destroy
      Src: /src/dav1d/src/lib.c:654,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:656,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:657,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:658,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:659,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:660,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:661,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:662,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:663,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:664,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:665,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:666,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:667,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:668,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:669,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:670,1
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/lib.c:672,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:676,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:677,1
    - Dst: dav1d_data_unref_internal
      Src: /src/dav1d/src/lib.c:680,1
    - Dst: dav1d_free
      Src: /src/dav1d/src/lib.c:681,1
    - Dst: dav1d_cdf_thread_unref
      Src: /src/dav1d/src/lib.c:683,1
    - Dst: dav1d_thread_picture_unref
      Src: /src/dav1d/src/lib.c:685,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:686,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:687,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:689,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:690,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:692,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:693,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/lib.c:694,1
    - Dst: dav1d_mem_pool_end
      Src: /src/dav1d/src/lib.c:696,1
    - Dst: dav1d_mem_pool_end
      Src: /src/dav1d/src/lib.c:697,1
    - Dst: dav1d_mem_pool_end
      Src: /src/dav1d/src/lib.c:698,1
    - Dst: dav1d_mem_pool_end
      Src: /src/dav1d/src/lib.c:699,1
    - Dst: dav1d_mem_pool_end
      Src: /src/dav1d/src/lib.c:700,1
    - Dst: dav1d_mem_pool_end
      Src: /src/dav1d/src/lib.c:701,1
    - Dst: dav1d_mem_pool_end
      Src: /src/dav1d/src/lib.c:702,1
    - Dst: dav1d_freep_aligned
      Src: /src/dav1d/src/lib.c:704,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 86
    argCount: 2
    argNames:
    - c_out
    - flush
    argTypes:
    - Dav1dContext**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 610
    functionDepth: 6
    functionLinenumber: 610
    functionLinenumberEnd: 705
    functionName: close_internal
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_lock
    - dav1d_mem_pool_end
    - dav1d_flush
    - dav1d_cdf_thread_unref
    - dav1d_thread_picture_unref
    - pthread_cond_broadcast
    - dav1d_free_aligned
    - dav1d_freep_aligned
    - pthread_mutex_destroy
    - dav1d_free
    - dav1d_data_unref_internal
    - dav1d_ref_dec
    - pthread_mutex_unlock
    - pthread_cond_destroy
    - pthread_join
    linkageType: ''
    returnType: COLD
    signature: COLD close_internal(Dav1dContext **const c_out, int flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:708,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:708,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:709,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - flags
    argTypes:
    - Dav1dContext*
    - enum Dav1dEventFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 714
    functionName: dav1d_get_event_flags
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - validate_input_or_ret
    - DAV1D_ERR
    linkageType: ''
    returnType: int
    signature: int dav1d_get_event_flags(Dav1dContext *const c, enum Dav1dEventFlags
      *const flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:717,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:717,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/lib.c:718,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/lib.c:718,1
    - Dst: dav1d_data_props_unref_internal
      Src: /src/dav1d/src/lib.c:720,1
    - Dst: dav1d_data_props_set_defaults
      Src: /src/dav1d/src/lib.c:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - c
    - out
    argTypes:
    - Dav1dContext*
    - Dav1dDataProps*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 725
    functionName: dav1d_get_decode_error_data_props
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - dav1d_data_props_unref_internal
    - validate_input_or_ret
    - DAV1D_ERR
    - dav1d_data_props_set_defaults
    linkageType: ''
    returnType: int
    signature: int dav1d_get_decode_error_data_props(Dav1dContext *const c, Dav1dDataProps
      *const out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_picture_unref_internal
      Src: /src/dav1d/src/lib.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 727
    functionDepth: 3
    functionLinenumber: 727
    functionLinenumberEnd: 729
    functionName: dav1d_picture_unref
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 6
    functionsReached:
    - dav1d_picture_unref_internal
    linkageType: ''
    returnType: void
    signature: void dav1d_picture_unref(Dav1dPicture *const p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_data_create_internal
      Src: /src/dav1d/src/lib.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - Dav1dData*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 733
    functionName: dav1d_data_create
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 3
    functionsReached:
    - dav1d_data_create_internal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *dav1d_data_create(Dav1dData *const buf, const size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_data_wrap_internal
      Src: /src/dav1d/src/lib.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - ptr
    - sz
    - user_data
    argTypes:
    - Dav1dData*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 742
    functionName: dav1d_data_wrap
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - dav1d_data_wrap_internal
    linkageType: ''
    returnType: int
    signature: "int dav1d_data_wrap(Dav1dData *const buf, const uint8_t *const ptr,\n
      \                   const size_t sz,\n                    void (*const free_callback)(const
      uint8_t *data,\n                                                void *user_data),\n
      \                   void *const user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_data_wrap_user_data_internal
      Src: /src/dav1d/src/lib.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - user_data
    - cookie
    argTypes:
    - Dav1dData*
    - uint8_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 754
    functionName: dav1d_data_wrap_user_data
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - dav1d_data_wrap_user_data_internal
    linkageType: ''
    returnType: int
    signature: "int dav1d_data_wrap_user_data(Dav1dData *const buf,\n                              const
      uint8_t *const user_data,\n                              void (*const free_callback)(const
      uint8_t *user_data,\n                                                          void
      *cookie),\n                              void *const cookie)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_data_unref_internal
      Src: /src/dav1d/src/lib.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 758
    functionName: dav1d_data_unref
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 4
    functionsReached:
    - dav1d_data_unref_internal
    linkageType: ''
    returnType: void
    signature: void dav1d_data_unref(Dav1dData *const buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_data_props_unref_internal
      Src: /src/dav1d/src/lib.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - props
    argTypes:
    - Dav1dDataProps*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: dav1d_data_props_unref
    functionSourceFile: /src/dav1d/src/lib.c
    functionUses: 0
    functionsReached:
    - dav1d_data_props_unref_internal
    linkageType: ''
    returnType: void
    signature: void dav1d_data_props_unref(Dav1dDataProps *const props)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - MsacContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: ctx_refill
    functionSourceFile: /src/dav1d/src/msac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctx_refill(MsacContext *const s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/msac.c:63,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/msac.c:66,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/msac.c:67,1
    - Dst: dav1d_msac_decode_bool_equi
      Src: /src/dav1d/src/msac.c:68,1
    - Dst: dav1d_msac_decode_bools
      Src: /src/dav1d/src/msac.c:71,1
    - Dst: inv_recenter
      Src: /src/dav1d/src/msac.c:72,1
    - Dst: inv_recenter
      Src: /src/dav1d/src/msac.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - s
    - ref
    - n
    - k
    argTypes:
    - MsacContext*
    - int
    - int
    - unsigned
    assertStmts:
    - condition: (n >> k == 8)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/dav1d/src/msac.c
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: dav1d_msac_decode_subexp
    functionSourceFile: /src/dav1d/src/msac.c
    functionUses: 1
    functionsReached:
    - inv_recenter
    - dav1d_msac_decode_bools
    - assert
    - dav1d_msac_decode_bool_equi
    linkageType: ''
    returnType: int
    signature: "int dav1d_msac_decode_subexp(MsacContext *const s, const int ref,\n
      \                            const int n, unsigned k)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clz
      Src: /src/dav1d/src/msac.c:88,1
    - Dst: assert
      Src: /src/dav1d/src/msac.c:90,1
    - Dst: ctx_refill
      Src: /src/dav1d/src/msac.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - dif
    - rng
    argTypes:
    - MsacContext*
    - ec_win
    - unsigned
    assertStmts:
    - condition: (rng <= 65535U)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/dav1d/src/msac.c
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: ctx_norm
    functionSourceFile: /src/dav1d/src/msac.c
    functionUses: 0
    functionsReached:
    - clz
    - assert
    - ctx_refill
    linkageType: ''
    returnType: void
    signature: "void ctx_norm(MsacContext *const s, const ec_win dif,\n                            const
      unsigned rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/msac.c:102,1
    - Dst: ctx_norm
      Src: /src/dav1d/src/msac.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - MsacContext*
    assertStmts:
    - condition: ((dif >> (EC_WIN_SIZE - 16)) < r)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/dav1d/src/msac.c
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: dav1d_msac_decode_bool_equi_c
    functionSourceFile: /src/dav1d/src/msac.c
    functionUses: 0
    functionsReached:
    - ctx_norm
    - assert
    linkageType: ''
    returnType: unsigned
    signature: unsigned dav1d_msac_decode_bool_equi_c(MsacContext *const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/msac.c:120,1
    - Dst: ctx_norm
      Src: /src/dav1d/src/msac.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - MsacContext*
    - unsigned
    assertStmts:
    - condition: ((dif >> (EC_WIN_SIZE - 16)) < r)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/dav1d/src/msac.c
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: dav1d_msac_decode_bool_c
    functionSourceFile: /src/dav1d/src/msac.c
    functionUses: 0
    functionsReached:
    - ctx_norm
    - assert
    linkageType: ''
    returnType: unsigned
    signature: unsigned dav1d_msac_decode_bool_c(MsacContext *const s, const unsigned
      f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/msac.c:139,1
    - Dst: assert
      Src: /src/dav1d/src/msac.c:140,1
    - Dst: assert
      Src: /src/dav1d/src/msac.c:150,1
    - Dst: ctx_norm
      Src: /src/dav1d/src/msac.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - s
    - cdf
    - n_symbols
    argTypes:
    - MsacContext*
    - uint16_t*
    - size_t
    assertStmts:
    - condition: (n_symbols <= 15)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/dav1d/src/msac.c
    - condition: (cdf[n_symbols] <= 32)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/dav1d/src/msac.c
    - condition: (u <= s->rng)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/dav1d/src/msac.c
    constantsTouched: []
    func_position:
      end: 166
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 166
    functionName: dav1d_msac_decode_symbol_adapt_c
    functionSourceFile: /src/dav1d/src/msac.c
    functionUses: 0
    functionsReached:
    - ctx_norm
    - assert
    linkageType: ''
    returnType: unsigned
    signature: "unsigned dav1d_msac_decode_symbol_adapt_c(MsacContext *const s,\n
      \                                         uint16_t *const cdf,\n                                          const
      size_t n_symbols)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_msac_decode_bool
      Src: /src/dav1d/src/msac.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - cdf
    argTypes:
    - MsacContext*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 185
    functionName: dav1d_msac_decode_bool_adapt_c
    functionSourceFile: /src/dav1d/src/msac.c
    functionUses: 0
    functionsReached:
    - dav1d_msac_decode_bool
    linkageType: ''
    returnType: unsigned
    signature: "unsigned dav1d_msac_decode_bool_adapt_c(MsacContext *const s,\n                                        uint16_t
      *const cdf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/msac.c:188,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/msac.c:191,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/msac.c:194,1
    - Dst: dav1d_msac_decode_symbol_adapt4
      Src: /src/dav1d/src/msac.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - s
    - cdf
    argTypes:
    - MsacContext*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 201
    functionName: dav1d_msac_decode_hi_tok_c
    functionSourceFile: /src/dav1d/src/msac.c
    functionUses: 0
    functionsReached:
    - dav1d_msac_decode_symbol_adapt4
    linkageType: ''
    returnType: unsigned
    signature: unsigned dav1d_msac_decode_hi_tok_c(MsacContext *const s, uint16_t
      *const cdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ctx_refill
      Src: /src/dav1d/src/msac.c:213,1
    - Dst: msac_init_x86
      Src: /src/dav1d/src/msac.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - s
    - data
    - sz
    - disable_cdf_update_flag
    argTypes:
    - MsacContext*
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: dav1d_msac_init
    functionSourceFile: /src/dav1d/src/msac.c
    functionUses: 1
    functionsReached:
    - msac_init_x86
    - ctx_refill
    linkageType: ''
    returnType: void
    signature: "void dav1d_msac_init(MsacContext *const s, const uint8_t *const data,\n
      \                    const size_t sz, const int disable_cdf_update_flag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/pal.c:41,1
    - Dst: assert
      Src: /src/dav1d/src/pal.c:42,1
    - Dst: assert
      Src: /src/dav1d/src/pal.c:43,1
    - Dst: assert
      Src: /src/dav1d/src/pal.c:44,1
    - Dst: memset
      Src: /src/dav1d/src/pal.c:53,1
    - Dst: memcpy
      Src: /src/dav1d/src/pal.c:59,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 15
    argCount: 6
    argNames:
    - dst
    - src
    - bw
    - bh
    - w
    - h
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (bw >= 4 && bw <= 64 && !(bw & (bw - 1)))
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/dav1d/src/pal.c
    - condition: (bh >= 4 && bh <= 64 && !(bh & (bh - 1)))
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/dav1d/src/pal.c
    - condition: (h  >= 4 && h <= bh && !(h & 3))
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/dav1d/src/pal.c
    - condition: (w  >= 4 && w <= bw && !(w & 3))
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/dav1d/src/pal.c
    constantsTouched: []
    func_position:
      end: 61
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 61
    functionName: pal_idx_finish_c
    functionSourceFile: /src/dav1d/src/pal.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: "void pal_idx_finish_c(uint8_t *dst, const uint8_t *src,\n                             const
      int bw, const int bh,\n                             const int w, const int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pal_dsp_init_riscv
      Src: /src/dav1d/src/pal.c:76,1
    - Dst: pal_dsp_init_x86
      Src: /src/dav1d/src/pal.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dPalDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: dav1d_pal_dsp_init
    functionSourceFile: /src/dav1d/src/pal.c
    functionUses: 1
    functionsReached:
    - pal_dsp_init_x86
    - pal_dsp_init_riscv
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_pal_dsp_init(Dav1dPalDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitdepth_max
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: get_intermediate_bits
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_intermediate_bits(bitdepth_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitdepth_max
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: get_intermediate_bits
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_intermediate_bits(bitdepth_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pixel_copy
      Src: /src/dav1d/src/mc_tmpl.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - dst
    - dst_stride
    - src
    - src_stride
    - w
    - h
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: put_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - pixel_copy
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE put_c(pixel *dst, const ptrdiff_t dst_stride,\n      const
      pixel *src, const ptrdiff_t src_stride, const int w, int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - tmp
    - src
    - src_stride
    - w
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - int16_t*
    - pixel*
    - ptrdiff_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: prep_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - get_intermediate_bits
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE prep_c(int16_t *tmp, const pixel *src, const ptrdiff_t src_stride,\n
      \      const int w, int h HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - F
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: FILTER_8TAP
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_8TAP(src, x, F, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: FILTER_8TAP2
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_8TAP2(src, x, F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - F
    - ','
    - stride
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: DAV1D_FILTER_8TAP_RND
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_FILTER_8TAP_RND(src, x, F, stride, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - F
    - ','
    - stride
    - ','
    - rnd
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: DAV1D_FILTER_8TAP_RND2
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_FILTER_8TAP_RND2(src, x, F, stride, rnd, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - F
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: DAV1D_FILTER_8TAP_RND3
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_FILTER_8TAP_RND3(src, x, F, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - F
    - ','
    - stride
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: DAV1D_FILTER_8TAP_CLIP
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_FILTER_8TAP_CLIP(src, x, F, stride, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - F
    - ','
    - stride
    - ','
    - rnd
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: DAV1D_FILTER_8TAP_CLIP2
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_FILTER_8TAP_CLIP2(src, x, F, stride, rnd, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - F
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: DAV1D_FILTER_8TAP_CLIP3
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_FILTER_8TAP_CLIP3(src, x, F, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: GET_H_FILTER
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_H_FILTER(mx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - my
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: GET_V_FILTER
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_V_FILTER(my)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: GET_FILTERS
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_FILTERS()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:135,1
    - Dst: GET_FILTERS
      Src: /src/dav1d/src/mc_tmpl.c:138,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:139,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:140,1
    - Dst: DAV1D_FILTER_8TAP_RND
      Src: /src/dav1d/src/mc_tmpl.c:150,1
    - Dst: DAV1D_FILTER_8TAP_CLIP
      Src: /src/dav1d/src/mc_tmpl.c:160,1
    - Dst: DAV1D_FILTER_8TAP_CLIP2
      Src: /src/dav1d/src/mc_tmpl.c:169,1
    - Dst: DAV1D_FILTER_8TAP_CLIP
      Src: /src/dav1d/src/mc_tmpl.c:180,1
    - Dst: put_c
      Src: /src/dav1d/src/mc_tmpl.c:186,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 9
    argNames:
    - dst
    - dst_stride
    - src
    - src_stride
    - w
    - h
    - mx
    - my
    - filter_type HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 187
    functionName: put_8tap_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - put_c
    - get_intermediate_bits
    - DAV1D_FILTER_8TAP_CLIP2
    - GET_FILTERS
    - DAV1D_FILTER_8TAP_CLIP
    - PXSTRIDE
    - DAV1D_FILTER_8TAP_RND
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE put_8tap_c(pixel *dst, ptrdiff_t dst_stride,\n           const
      pixel *src, ptrdiff_t src_stride,\n           const int w, int h, const int
      mx, const int my,\n           const int filter_type HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:196,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:201,1
    - Dst: GET_V_FILTER
      Src: /src/dav1d/src/mc_tmpl.c:211,1
    - Dst: GET_H_FILTER
      Src: /src/dav1d/src/mc_tmpl.c:222,1
    - Dst: DAV1D_FILTER_8TAP_RND
      Src: /src/dav1d/src/mc_tmpl.c:223,1
    - Dst: DAV1D_FILTER_8TAP_CLIP3
      Src: /src/dav1d/src/mc_tmpl.c:236,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/mc_tmpl.c:238,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 11
    argNames:
    - dst
    - dst_stride
    - src
    - src_stride
    - w
    - h
    - mx
    - my
    - dx
    - dy
    - "filter_type\n                  HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 244
    functionName: put_8tap_scaled_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - get_intermediate_bits
    - GET_H_FILTER
    - DAV1D_FILTER_8TAP_CLIP3
    - iclip_pixel
    - PXSTRIDE
    - DAV1D_FILTER_8TAP_RND
    - GET_V_FILTER
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE put_8tap_scaled_c(pixel *dst, const ptrdiff_t dst_stride,\n
      \                 const pixel *src, ptrdiff_t src_stride,\n                  const
      int w, int h, const int mx, int my,\n                  const int dx, const int
      dy, const int filter_type\n                  HIGHBD_DECL_SUFFIX)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:251,1
    - Dst: GET_FILTERS
      Src: /src/dav1d/src/mc_tmpl.c:252,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:253,1
    - Dst: DAV1D_FILTER_8TAP_RND
      Src: /src/dav1d/src/mc_tmpl.c:263,1
    - Dst: DAV1D_FILTER_8TAP_RND
      Src: /src/dav1d/src/mc_tmpl.c:273,1
    - Dst: assert
      Src: /src/dav1d/src/mc_tmpl.c:275,1
    - Dst: DAV1D_FILTER_8TAP_RND
      Src: /src/dav1d/src/mc_tmpl.c:285,1
    - Dst: DAV1D_FILTER_8TAP_RND
      Src: /src/dav1d/src/mc_tmpl.c:296,1
    - Dst: prep_c
      Src: /src/dav1d/src/mc_tmpl.c:304,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 8
    argNames:
    - tmp
    - src
    - src_stride
    - w
    - h
    - mx
    - my
    - filter_type HIGHBD_DECL_SUFFIX
    argTypes:
    - int16_t*
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (t >= INT16_MIN && t <= INT16_MAX)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/dav1d/src/mc_tmpl.c
    constantsTouched: []
    func_position:
      end: 305
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 305
    functionName: prep_8tap_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - prep_c
    - get_intermediate_bits
    - assert
    - GET_FILTERS
    - PXSTRIDE
    - DAV1D_FILTER_8TAP_RND
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE prep_8tap_c(int16_t *tmp, const pixel *src, ptrdiff_t src_stride,\n
      \           const int w, int h, const int mx, const int my,\n            const
      int filter_type HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:313,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:317,1
    - Dst: GET_V_FILTER
      Src: /src/dav1d/src/mc_tmpl.c:327,1
    - Dst: GET_H_FILTER
      Src: /src/dav1d/src/mc_tmpl.c:338,1
    - Dst: DAV1D_FILTER_8TAP_RND
      Src: /src/dav1d/src/mc_tmpl.c:339,1
    - Dst: DAV1D_FILTER_8TAP_RND3
      Src: /src/dav1d/src/mc_tmpl.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 10
    argNames:
    - tmp
    - src
    - src_stride
    - w
    - h
    - mx
    - my
    - dx
    - dy
    - "filter_type\n                   HIGHBD_DECL_SUFFIX"
    argTypes:
    - int16_t*
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 358
    functionName: prep_8tap_scaled_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - get_intermediate_bits
    - GET_H_FILTER
    - PXSTRIDE
    - DAV1D_FILTER_8TAP_RND
    - DAV1D_FILTER_8TAP_RND3
    - GET_V_FILTER
    linkageType: ''
    returnType: NOINLINE
    signature: "NOINLINE prep_8tap_scaled_c(int16_t *tmp, const pixel *src, ptrdiff_t
      src_stride,\n                   const int w, int h, const int mx, int my,\n
      \                  const int dx, const int dy, const int filter_type\n                   HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - type_h
    - ','
    - type_v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 405
    functionName: filter_fns
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: filter_fns(type, type_h, type_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - mxy
    - ','
    - stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: FILTER_BILIN
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_BILIN(src, x, mxy, stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - mxy
    - ','
    - stride
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: FILTER_BILIN_RND
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_BILIN_RND(src, x, mxy, stride, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - mxy
    - ','
    - stride
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: FILTER_BILIN_CLIP
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_BILIN_CLIP(src, x, mxy, stride, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - src1
    - ','
    - src2
    - ','
    - x
    - ','
    - mxy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: FILTER_BILIN2
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_BILIN2(src1, src2, x, mxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - src1
    - ','
    - src2
    - ','
    - x
    - ','
    - mxy
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: FILTER_BILIN_RND2
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_BILIN_RND2(src1, src2, x, mxy, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - src1
    - ','
    - src2
    - ','
    - x
    - ','
    - mxy
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: FILTER_BILIN_CLIP2
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_BILIN_CLIP2(src1, src2, x, mxy, sh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:439,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:441,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:442,1
    - Dst: FILTER_BILIN_RND
      Src: /src/dav1d/src/mc_tmpl.c:451,1
    - Dst: FILTER_BILIN_CLIP
      Src: /src/dav1d/src/mc_tmpl.c:461,1
    - Dst: FILTER_BILIN_RND
      Src: /src/dav1d/src/mc_tmpl.c:470,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/mc_tmpl.c:472,1
    - Dst: FILTER_BILIN_CLIP
      Src: /src/dav1d/src/mc_tmpl.c:482,1
    - Dst: put_c
      Src: /src/dav1d/src/mc_tmpl.c:488,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 8
    argNames:
    - dst
    - dst_stride
    - src
    - src_stride
    - w
    - h
    - mx
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 489
    functionName: put_bilin_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - put_c
    - get_intermediate_bits
    - FILTER_BILIN_RND
    - iclip_pixel
    - FILTER_BILIN_CLIP
    - PXSTRIDE
    linkageType: ''
    returnType: void
    signature: "void put_bilin_c(pixel *dst, ptrdiff_t dst_stride,\n                        const
      pixel *src, ptrdiff_t src_stride,\n                        const int w, int
      h, const int mx, const int my\n                        HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:497,1
    - Dst: FILTER_BILIN_RND
      Src: /src/dav1d/src/mc_tmpl.c:513,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:520,1
    - Dst: FILTER_BILIN_CLIP2
      Src: /src/dav1d/src/mc_tmpl.c:525,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:529,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 10
    argNames:
    - dst
    - dst_stride
    - src
    - src_stride
    - w
    - h
    - mx
    - my
    - dx
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 531
    functionName: put_bilin_scaled_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - get_intermediate_bits
    - FILTER_BILIN_RND
    - FILTER_BILIN_CLIP2
    linkageType: ''
    returnType: void
    signature: "void put_bilin_scaled_c(pixel *dst, ptrdiff_t dst_stride,\n                               const
      pixel *src, ptrdiff_t src_stride,\n                               const int
      w, int h, const int mx, int my,\n                               const int dx,
      const int dy\n                               HIGHBD_DECL_SUFFIX)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:538,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:539,1
    - Dst: FILTER_BILIN_RND
      Src: /src/dav1d/src/mc_tmpl.c:548,1
    - Dst: FILTER_BILIN_RND
      Src: /src/dav1d/src/mc_tmpl.c:558,1
    - Dst: FILTER_BILIN_RND
      Src: /src/dav1d/src/mc_tmpl.c:567,1
    - Dst: FILTER_BILIN_RND
      Src: /src/dav1d/src/mc_tmpl.c:578,1
    - Dst: prep_c
      Src: /src/dav1d/src/mc_tmpl.c:585,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 7
    argNames:
    - tmp
    - src
    - src_stride
    - w
    - h
    - mx
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - int16_t*
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 586
    functionName: prep_bilin_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - prep_c
    - get_intermediate_bits
    - FILTER_BILIN_RND
    linkageType: ''
    returnType: void
    signature: "void prep_bilin_c(int16_t *tmp,\n                         const pixel
      *src, ptrdiff_t src_stride,\n                         const int w, int h, const
      int mx, const int my\n                         HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:593,1
    - Dst: FILTER_BILIN_RND
      Src: /src/dav1d/src/mc_tmpl.c:609,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:616,1
    - Dst: FILTER_BILIN_RND2
      Src: /src/dav1d/src/mc_tmpl.c:621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 9
    argNames:
    - tmp
    - src
    - src_stride
    - w
    - h
    - mx
    - my
    - dx
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - int16_t*
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 626
    functionName: prep_bilin_scaled_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - get_intermediate_bits
    - FILTER_BILIN_RND
    - FILTER_BILIN_RND2
    linkageType: ''
    returnType: void
    signature: "void prep_bilin_scaled_c(int16_t *tmp,\n                                const
      pixel *src, ptrdiff_t src_stride,\n                                const int
      w, int h, const int mx, int my,\n                                const int dx,
      const int dy HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:632,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/mc_tmpl.c:637,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - dst
    - dst_stride
    - tmp1
    - tmp2
    - w
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - int16_t*
    - int16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 643
    functionName: avg_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - iclip_pixel
    - get_intermediate_bits
    linkageType: ''
    returnType: void
    signature: "void avg_c(pixel *dst, const ptrdiff_t dst_stride,\n                  const
      int16_t *tmp1, const int16_t *tmp2, const int w, int h\n                  HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:649,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/mc_tmpl.c:654,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - dst
    - dst_stride
    - tmp1
    - tmp2
    - w
    - h
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - int16_t*
    - int16_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 661
    functionName: w_avg_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - iclip_pixel
    - get_intermediate_bits
    linkageType: ''
    returnType: void
    signature: "void w_avg_c(pixel *dst, const ptrdiff_t dst_stride,\n                    const
      int16_t *tmp1, const int16_t *tmp2, const int w, int h,\n                    const
      int weight HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:667,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/mc_tmpl.c:672,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - dst
    - dst_stride
    - tmp1
    - tmp2
    - w
    - h
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - int16_t*
    - int16_t*
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 680
    functionName: mask_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - iclip_pixel
    - get_intermediate_bits
    linkageType: ''
    returnType: void
    signature: "void mask_c(pixel *dst, const ptrdiff_t dst_stride,\n                   const
      int16_t *tmp1, const int16_t *tmp2, const int w, int h,\n                   const
      uint8_t *mask HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 683
    functionName: blend_px
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blend_px(a, b, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_px
      Src: /src/dav1d/src/mc_tmpl.c:688,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - dst
    - dst_stride
    - tmp
    - w
    - h
    - mask
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 694
    functionName: blend_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - blend_px
    linkageType: ''
    returnType: void
    signature: "void blend_c(pixel *dst, const ptrdiff_t dst_stride, const pixel *tmp,\n
      \                   const int w, int h, const uint8_t *mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_px
      Src: /src/dav1d/src/mc_tmpl.c:702,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - dst
    - dst_stride
    - tmp
    - w
    - h
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 707
    functionName: blend_v_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - blend_px
    linkageType: ''
    returnType: void
    signature: "void blend_v_c(pixel *dst, const ptrdiff_t dst_stride, const pixel
      *tmp,\n                      const int w, int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_px
      Src: /src/dav1d/src/mc_tmpl.c:717,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - dst
    - dst_stride
    - tmp
    - w
    - h
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 722
    functionName: blend_h_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - blend_px
    linkageType: ''
    returnType: void
    signature: "void blend_h_c(pixel *dst, const ptrdiff_t dst_stride, const pixel
      *tmp,\n                      const int w, int h)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:731,1
    - Dst: bitdepth_from_max
      Src: /src/dav1d/src/mc_tmpl.c:732,1
    - Dst: imin
      Src: /src/dav1d/src/mc_tmpl.c:740,1
    - Dst: abs
      Src: /src/dav1d/src/mc_tmpl.c:740,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/mc_tmpl.c:741,1
    - Dst: imin
      Src: /src/dav1d/src/mc_tmpl.c:747,1
    - Dst: abs
      Src: /src/dav1d/src/mc_tmpl.c:747,1
    - Dst: iclip_pixel
      Src: /src/dav1d/src/mc_tmpl.c:748,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:764,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 10
    argNames:
    - dst
    - dst_stride
    - tmp1
    - tmp2
    - w
    - h
    - mask
    - sign
    - ss_hor
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - int16_t*
    - int16_t*
    - int
    - int
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 767
    functionName: w_mask_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - imin
    - get_intermediate_bits
    - iclip_pixel
    - abs
    - PXSTRIDE
    - bitdepth_from_max
    linkageType: ''
    returnType: void
    signature: "void w_mask_c(pixel *dst, const ptrdiff_t dst_stride,\n                     const
      int16_t *tmp1, const int16_t *tmp2, const int w, int h,\n                     uint8_t
      *mask, const int sign,\n                     const int ss_hor, const int ss_ver
      HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ssn
    - ','
    - ss_hor
    - ','
    - ss_ver
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 778
    functionName: w_mask_fns
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: w_mask_fns(ssn, ss_hor, ss_ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - F
    - ','
    - stride
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 795
    functionName: FILTER_WARP_RND
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_WARP_RND(src, x, F, stride, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - src
    - ','
    - x
    - ','
    - F
    - ','
    - stride
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 798
    functionName: FILTER_WARP_CLIP
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILTER_WARP_CLIP(src, x, F, stride, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:804,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:807,1
    - Dst: FILTER_WARP_RND
      Src: /src/dav1d/src/mc_tmpl.c:813,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:816,1
    - Dst: FILTER_WARP_CLIP
      Src: /src/dav1d/src/mc_tmpl.c:826,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - dst
    - dst_stride
    - src
    - src_stride
    - abcd
    - mx
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    - int16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 832
    functionName: warp_affine_8x8_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - get_intermediate_bits
    - FILTER_WARP_RND
    - FILTER_WARP_CLIP
    linkageType: ''
    returnType: void
    signature: "void warp_affine_8x8_c(pixel *dst, const ptrdiff_t dst_stride,\n                              const
      pixel *src, const ptrdiff_t src_stride,\n                              const
      int16_t *const abcd, int mx, int my\n                              HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_intermediate_bits
      Src: /src/dav1d/src/mc_tmpl.c:839,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:842,1
    - Dst: FILTER_WARP_RND
      Src: /src/dav1d/src/mc_tmpl.c:848,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:851,1
    - Dst: FILTER_WARP_RND
      Src: /src/dav1d/src/mc_tmpl.c:861,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - tmp
    - tmp_stride
    - src
    - src_stride
    - abcd
    - mx
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - int16_t*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    - int16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 866
    functionName: warp_affine_8x8t_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - get_intermediate_bits
    - FILTER_WARP_RND
    linkageType: ''
    returnType: void
    signature: "void warp_affine_8x8t_c(int16_t *tmp, const ptrdiff_t tmp_stride,\n
      \                              const pixel *src, const ptrdiff_t src_stride,\n
      \                              const int16_t *const abcd, int mx, int my\n                               HIGHBD_DECL_SUFFIX)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:875,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:875,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:876,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:879,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:880,1
    - Dst: assert
      Src: /src/dav1d/src/mc_tmpl.c:881,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:882,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:883,1
    - Dst: assert
      Src: /src/dav1d/src/mc_tmpl.c:884,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:887,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/mc_tmpl.c:891,1
    - Dst: pixel_set
      Src: /src/dav1d/src/mc_tmpl.c:894,1
    - Dst: pixel_set
      Src: /src/dav1d/src/mc_tmpl.c:897,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:899,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:900,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:904,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/mc_tmpl.c:906,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:907,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:911,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/mc_tmpl.c:913,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:913,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:914,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 10
    argNames:
    - bw
    - bh
    - iw
    - ih
    - x
    - y
    - dst
    - dst_stride
    - ref
    - ref_stride
    argTypes:
    - intptr_t
    - intptr_t
    - intptr_t
    - intptr_t
    - intptr_t
    - intptr_t
    - pixel*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    assertStmts:
    - condition: (left_ext + right_ext < bw)
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/dav1d/src/mc_tmpl.c
    - condition: (top_ext + bottom_ext < bh)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/dav1d/src/mc_tmpl.c
    constantsTouched: []
    func_position:
      end: 916
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 916
    functionName: emu_edge_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - assert
    - pixel_set
    - pixel_copy
    - PXSTRIDE
    - iclip
    linkageType: ''
    returnType: void
    signature: "void emu_edge_c(const intptr_t bw, const intptr_t bh,\n                       const
      intptr_t iw, const intptr_t ih,\n                       const intptr_t x, const
      intptr_t y,\n                       pixel *dst, const ptrdiff_t dst_stride,\n
      \                      const pixel *ref, const ptrdiff_t ref_stride)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iclip_pixel
      Src: /src/dav1d/src/mc_tmpl.c:927,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:927,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:928,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:929,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:930,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:931,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:932,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:933,1
    - Dst: iclip
      Src: /src/dav1d/src/mc_tmpl.c:934,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:941,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/mc_tmpl.c:942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 9
    argNames:
    - dst
    - dst_stride
    - src
    - src_stride
    - dst_w
    - h
    - src_w
    - dx
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - ptrdiff_t
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 944
    functionName: resize_c
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - iclip
    - iclip_pixel
    linkageType: ''
    returnType: void
    signature: "void resize_c(pixel *dst, const ptrdiff_t dst_stride,\n                     const
      pixel *src, const ptrdiff_t src_stride,\n                     const int dst_w,
      int h, const int src_w,\n                     const int dx, const int mx0 HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_mc_fns
      Src: /src/dav1d/src/mc_tmpl.c:968,1
    - Dst: init_mc_fns
      Src: /src/dav1d/src/mc_tmpl.c:969,1
    - Dst: init_mc_fns
      Src: /src/dav1d/src/mc_tmpl.c:970,1
    - Dst: init_mc_fns
      Src: /src/dav1d/src/mc_tmpl.c:971,1
    - Dst: init_mc_fns
      Src: /src/dav1d/src/mc_tmpl.c:972,1
    - Dst: init_mc_fns
      Src: /src/dav1d/src/mc_tmpl.c:973,1
    - Dst: init_mc_fns
      Src: /src/dav1d/src/mc_tmpl.c:974,1
    - Dst: init_mc_fns
      Src: /src/dav1d/src/mc_tmpl.c:975,1
    - Dst: init_mc_fns
      Src: /src/dav1d/src/mc_tmpl.c:976,1
    - Dst: init_mc_fns
      Src: /src/dav1d/src/mc_tmpl.c:977,1
    - Dst: mc_dsp_init_arm
      Src: /src/dav1d/src/mc_tmpl.c:995,1
    - Dst: mc_dsp_init_loongarch
      Src: /src/dav1d/src/mc_tmpl.c:997,1
    - Dst: mc_dsp_init_ppc
      Src: /src/dav1d/src/mc_tmpl.c:999,1
    - Dst: mc_dsp_init_riscv
      Src: /src/dav1d/src/mc_tmpl.c:1001,1
    - Dst: mc_dsp_init_x86
      Src: /src/dav1d/src/mc_tmpl.c:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dMCDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 1006
    functionName: bitfn
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 11
    functionsReached:
    - mc_dsp_init_arm
    - mc_dsp_init_ppc
    - mc_dsp_init_x86
    - init_mc_fns
    - mc_dsp_init_loongarch
    - mc_dsp_init_riscv
    linkageType: ''
    returnType: COLD
    signature: COLD bitfn(dav1d_mc_dsp_init)(Dav1dMCDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 967
    functionName: init_mc_fns
    functionSourceFile: /src/dav1d/src/mc_tmpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_mc_fns(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: decl_angular_ipred_fn
    functionSourceFile: /src/dav1d/src/ipred.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_angular_ipred_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: decl_cfl_ac_fn
    functionSourceFile: /src/dav1d/src/ipred.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_cfl_ac_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: decl_cfl_pred_fn
    functionSourceFile: /src/dav1d/src/ipred.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_cfl_pred_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: decl_pal_pred_fn
    functionSourceFile: /src/dav1d/src/ipred.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_pal_pred_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_ctx1
      Src: /src/dav1d/src/ctx.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: memset_w1
    functionSourceFile: /src/dav1d/src/ctx.c
    functionUses: 0
    functionsReached:
    - set_ctx1
    linkageType: ''
    returnType: void
    signature: void memset_w1(void *const ptr, const int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_ctx2
      Src: /src/dav1d/src/ctx.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: memset_w2
    functionSourceFile: /src/dav1d/src/ctx.c
    functionUses: 0
    functionsReached:
    - set_ctx2
    linkageType: ''
    returnType: void
    signature: void memset_w2(void *const ptr, const int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_ctx4
      Src: /src/dav1d/src/ctx.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: memset_w4
    functionSourceFile: /src/dav1d/src/ctx.c
    functionUses: 0
    functionsReached:
    - set_ctx4
    linkageType: ''
    returnType: void
    signature: void memset_w4(void *const ptr, const int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_ctx8
      Src: /src/dav1d/src/ctx.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: memset_w8
    functionSourceFile: /src/dav1d/src/ctx.c
    functionUses: 0
    functionsReached:
    - set_ctx8
    linkageType: ''
    returnType: void
    signature: void memset_w8(void *const ptr, const int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_ctx16
      Src: /src/dav1d/src/ctx.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: memset_w16
    functionSourceFile: /src/dav1d/src/ctx.c
    functionUses: 0
    functionsReached:
    - set_ctx16
    linkageType: ''
    returnType: void
    signature: void memset_w16(void *const ptr, const int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_ctx32
      Src: /src/dav1d/src/ctx.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: memset_w32
    functionSourceFile: /src/dav1d/src/ctx.c
    functionUses: 0
    functionsReached:
    - set_ctx32
    linkageType: ''
    returnType: void
    signature: void memset_w32(void *const ptr, const int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: decl_cdef_fn
    functionSourceFile: /src/dav1d/src/cdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_cdef_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: decl_cdef_dir_fn
    functionSourceFile: /src/dav1d/src/cdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_cdef_dir_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: ROUND_UP
    functionSourceFile: /src/dav1d/src/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_UP(x,a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/mem.h:90,1
    - Dst: _aligned_malloc
      Src: /src/dav1d/src/mem.h:92,1
    - Dst: posix_memalign
      Src: /src/dav1d/src/mem.h:95,1
    - Dst: memalign
      Src: /src/dav1d/src/mem.h:98,1
    - Dst: aligned_alloc
      Src: /src/dav1d/src/mem.h:102,1
    - Dst: ROUND_UP
      Src: /src/dav1d/src/mem.h:102,1
    - Dst: malloc
      Src: /src/dav1d/src/mem.h:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - sz
    - align
    argTypes:
    - size_t
    - size_t
    assertStmts:
    - condition: (!(align & (align - 1)))
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/dav1d/src/mem.h
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: dav1d_alloc_aligned_internal
    functionSourceFile: /src/dav1d/src/mem.h
    functionUses: 1
    functionsReached:
    - ROUND_UP
    - assert
    - _aligned_malloc
    - malloc
    - aligned_alloc
    - posix_memalign
    - memalign
    linkageType: ''
    returnType: void
    signature: void *dav1d_alloc_aligned_internal(const size_t sz, const size_t align)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_free
      Src: /src/dav1d/src/mem.h:115,1
    - Dst: free
      Src: /src/dav1d/src/mem.h:117,1
    - Dst: free
      Src: /src/dav1d/src/mem.h:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: dav1d_free_aligned_internal
    functionSourceFile: /src/dav1d/src/mem.h
    functionUses: 1
    functionsReached:
    - _aligned_free
    - free
    linkageType: ''
    returnType: void
    signature: void dav1d_free_aligned_internal(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: dav1d_mem_pool_init
    functionSourceFile: /src/dav1d/src/mem.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_mem_pool_init(type, pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: dav1d_malloc
    functionSourceFile: /src/dav1d/src/mem.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_malloc(type, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - ptr
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: dav1d_realloc
    functionSourceFile: /src/dav1d/src/mem.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_realloc(type, ptr, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - sz
    - ','
    - align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: dav1d_alloc_aligned
    functionSourceFile: /src/dav1d/src/mem.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_alloc_aligned(type, sz, align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: dav1d_free
    functionSourceFile: /src/dav1d/src/mem.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_free(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: dav1d_free_aligned
    functionSourceFile: /src/dav1d/src/mem.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_free_aligned(ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_free_aligned
      Src: /src/dav1d/src/mem.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: dav1d_freep_aligned
    functionSourceFile: /src/dav1d/src/mem.h
    functionUses: 2
    functionsReached:
    - dav1d_free_aligned
    linkageType: ''
    returnType: void
    signature: void dav1d_freep_aligned(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - b
    - idx
    argTypes:
    - BlockContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: sm_flag
    functionSourceFile: /src/dav1d/src/ipred_prepare.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sm_flag(const BlockContext *const b, const int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - b
    - idx
    argTypes:
    - BlockContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: sm_uv_flag
    functionSourceFile: /src/dav1d/src/ipred_prepare.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sm_uv_flag(const BlockContext *const b, const int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: decl_lr_filter_fn
    functionSourceFile: /src/dav1d/src/looprestoration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_lr_filter_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - idx
    - ','
    - f0
    - ','
    - f1
    - ','
    - f2
    - ','
    - f3
    - ','
    - f4
    - ','
    - f5
    - ','
    - f6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 757
    functionName: F
    functionSourceFile: /src/dav1d/src/tables.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(idx, f0, f1, f2, f3, f4, f5, f6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - idx
    - ','
    - f0
    - ','
    - f1
    - ','
    - f2
    - ','
    - f3
    - ','
    - f4
    - ','
    - f5
    - ','
    - f6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 763
    functionName: F
    functionSourceFile: /src/dav1d/src/tables.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(idx, f0, f1, f2, f3, f4, f5, f6)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/data.c:44,1
    - Dst: dav1d_ref_create
      Src: /src/dav1d/src/data.c:47,1
    - Dst: dav1d_data_props_set_defaults
      Src: /src/dav1d/src/data.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - Dav1dData*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: dav1d_data_create_internal
    functionSourceFile: /src/dav1d/src/data.c
    functionUses: 1
    functionsReached:
    - dav1d_ref_create
    - validate_input_or_ret
    - dav1d_data_props_set_defaults
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *dav1d_data_create_internal(Dav1dData *const buf, const size_t
      sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/data.c:63,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/data.c:63,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/data.c:64,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/data.c:64,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/data.c:65,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/data.c:65,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/data.c:67,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/data.c:68,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/data.c:69,1
    - Dst: dav1d_ref_init
      Src: /src/dav1d/src/data.c:71,1
    - Dst: dav1d_data_props_set_defaults
      Src: /src/dav1d/src/data.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - buf
    - ptr
    - sz
    - cookie
    argTypes:
    - Dav1dData*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: dav1d_data_wrap_internal
    functionSourceFile: /src/dav1d/src/data.c
    functionUses: 1
    functionsReached:
    - dav1d_malloc
    - dav1d_ref_init
    - validate_input_or_ret
    - DAV1D_ERR
    - dav1d_data_props_set_defaults
    linkageType: ''
    returnType: int
    signature: "int dav1d_data_wrap_internal(Dav1dData *const buf, const uint8_t *const
      ptr,\n                             const size_t sz,\n                             void
      (*const free_callback)(const uint8_t *data,\n                                                         void
      *cookie),\n                             void *const cookie)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/data.c:86,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/data.c:86,1
    - Dst: validate_input_or_ret
      Src: /src/dav1d/src/data.c:87,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/data.c:87,1
    - Dst: dav1d_malloc
      Src: /src/dav1d/src/data.c:89,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/src/data.c:90,1
    - Dst: dav1d_ref_init
      Src: /src/dav1d/src/data.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - user_data
    - cookie
    argTypes:
    - Dav1dData*
    - uint8_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: dav1d_data_wrap_user_data_internal
    functionSourceFile: /src/dav1d/src/data.c
    functionUses: 1
    functionsReached:
    - dav1d_malloc
    - validate_input_or_ret
    - DAV1D_ERR
    - dav1d_ref_init
    linkageType: ''
    returnType: int
    signature: "int dav1d_data_wrap_user_data_internal(Dav1dData *const buf,\n                                       const
      uint8_t *const user_data,\n                                       void (*const
      free_callback)(const uint8_t *user_data,\n                                                                   void
      *cookie),\n                                       void *const cookie)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/data.c:99,1
    - Dst: assert
      Src: /src/dav1d/src/data.c:100,1
    - Dst: assert
      Src: /src/dav1d/src/data.c:101,1
    - Dst: assert
      Src: /src/dav1d/src/data.c:104,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/data.c:105,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/data.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - Dav1dData*
    - Dav1dData*
    assertStmts:
    - condition: (dst != NULL)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/dav1d/src/data.c
    - condition: (dst->data == NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/dav1d/src/data.c
    - condition: (src != NULL)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/dav1d/src/data.c
    - condition: (src->data != NULL)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/dav1d/src/data.c
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: dav1d_data_ref
    functionSourceFile: /src/dav1d/src/data.c
    functionUses: 2
    functionsReached:
    - assert
    - dav1d_ref_inc
    linkageType: ''
    returnType: void
    signature: void dav1d_data_ref(Dav1dData *const dst, const Dav1dData *const src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/data.c:114,1
    - Dst: assert
      Src: /src/dav1d/src/data.c:115,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/data.c:117,1
    - Dst: dav1d_ref_inc
      Src: /src/dav1d/src/data.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - Dav1dDataProps*
    - Dav1dDataProps*
    assertStmts:
    - condition: (dst != NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/dav1d/src/data.c
    - condition: (src != NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/dav1d/src/data.c
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: dav1d_data_props_copy
    functionSourceFile: /src/dav1d/src/data.c
    functionUses: 5
    functionsReached:
    - dav1d_ref_inc
    - assert
    - dav1d_ref_dec
    linkageType: ''
    returnType: void
    signature: "void dav1d_data_props_copy(Dav1dDataProps *const dst,\n                           const
      Dav1dDataProps *const src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/data.c:123,1
    - Dst: memset
      Src: /src/dav1d/src/data.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - props
    argTypes:
    - Dav1dDataProps*
    assertStmts:
    - condition: (props != NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/dav1d/src/data.c
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: dav1d_data_props_set_defaults
    functionSourceFile: /src/dav1d/src/data.c
    functionUses: 6
    functionsReached:
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: void dav1d_data_props_set_defaults(Dav1dDataProps *const props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_input
      Src: /src/dav1d/src/data.c:131,1
    - Dst: dav1d_data_props_set_defaults
      Src: /src/dav1d/src/data.c:134,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/data.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - props
    argTypes:
    - Dav1dDataProps*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: dav1d_data_props_unref_internal
    functionSourceFile: /src/dav1d/src/data.c
    functionUses: 3
    functionsReached:
    - dav1d_data_props_set_defaults
    - validate_input
    - dav1d_ref_dec
    linkageType: ''
    returnType: void
    signature: void dav1d_data_props_unref_internal(Dav1dDataProps *const props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_input
      Src: /src/dav1d/src/data.c:139,1
    - Dst: validate_input
      Src: /src/dav1d/src/data.c:143,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/data.c:144,1
    - Dst: memset
      Src: /src/dav1d/src/data.c:146,1
    - Dst: dav1d_data_props_set_defaults
      Src: /src/dav1d/src/data.c:147,1
    - Dst: dav1d_ref_dec
      Src: /src/dav1d/src/data.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: dav1d_data_unref_internal
    functionSourceFile: /src/dav1d/src/data.c
    functionUses: 8
    functionsReached:
    - memset
    - validate_input
    - dav1d_data_props_set_defaults
    - dav1d_ref_dec
    linkageType: ''
    returnType: void
    signature: void dav1d_data_unref_internal(Dav1dData *const buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - dst
    - src
    - h
    - hstep
    - vstep
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1625
    functionName: subsample
    functionSourceFile: /src/dav1d/src/qm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void subsample(uint8_t *dst, const uint8_t *const src,\n                      const
      int h, const int hstep, const int vstep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - dst
    - src
    - w
    - h
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1633
    functionName: transpose
    functionSourceFile: /src/dav1d/src/qm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void transpose(uint8_t *const dst, const uint8_t *const src,\n                      const
      int w, const int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/dav1d/src/qm.c:1637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dst
    - src
    - sz
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1646
    functionName: untriangle
    functionSourceFile: /src/dav1d/src/qm.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void untriangle(uint8_t *dst, const uint8_t *src, const int sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: untriangle
      Src: /src/dav1d/src/qm.c:1671,1
    - Dst: subsample
      Src: /src/dav1d/src/qm.c:1672,1
    - Dst: subsample
      Src: /src/dav1d/src/qm.c:1673,1
    - Dst: subsample
      Src: /src/dav1d/src/qm.c:1674,1
    - Dst: subsample
      Src: /src/dav1d/src/qm.c:1675,1
    - Dst: subsample
      Src: /src/dav1d/src/qm.c:1676,1
    - Dst: subsample
      Src: /src/dav1d/src/qm.c:1677,1
    - Dst: subsample
      Src: /src/dav1d/src/qm.c:1678,1
    - Dst: transpose
      Src: /src/dav1d/src/qm.c:1679,1
    - Dst: transpose
      Src: /src/dav1d/src/qm.c:1680,1
    - Dst: transpose
      Src: /src/dav1d/src/qm.c:1681,1
    - Dst: transpose
      Src: /src/dav1d/src/qm.c:1682,1
    - Dst: transpose
      Src: /src/dav1d/src/qm.c:1683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1693
    functionName: dav1d_init_qm_tables
    functionSourceFile: /src/dav1d/src/qm.c
    functionUses: 1
    functionsReached:
    - subsample
    - untriangle
    - transpose
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_init_qm_tables(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lr_apply_tmpl.c:48,1
    - Dst: imin
      Src: /src/dav1d/src/lr_apply_tmpl.c:51,1
    - Dst: assert
      Src: /src/dav1d/src/lr_apply_tmpl.c:74,1
    - Dst: lr_fn
      Src: /src/dav1d/src/lr_apply_tmpl.c:88,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lr_apply_tmpl.c:92,1
    - Dst: imin
      Src: /src/dav1d/src/lr_apply_tmpl.c:94,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lr_apply_tmpl.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 10
    argNames:
    - f
    - p
    - (*left)
    - x
    - y
    - plane
    - unit_w
    - row_h
    - lr
    - edges
    argTypes:
    - Dav1dFrameContext*
    - pixel*
    - pixel[]
    - int
    - int
    - int
    - int
    - int
    - Av1RestorationUnit*
    - enum LrEdgeFlags
    assertStmts:
    - condition: (lr->type >= DAV1D_RESTORATION_SGRPROJ)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/dav1d/src/lr_apply_tmpl.c
    constantsTouched: []
    func_position:
      end: 98
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 98
    functionName: lr_stripe
    functionSourceFile: /src/dav1d/src/lr_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - imin
    - assert
    - lr_fn
    linkageType: ''
    returnType: void
    signature: "void lr_stripe(const Dav1dFrameContext *const f, pixel *p,\n                      const
      pixel (*left)[4], int x, int y,\n                      const int plane, const
      int unit_w, const int row_h,\n                      const Av1RestorationUnit
      *const lr, enum LrEdgeFlags edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lr_apply_tmpl.c:103,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/lr_apply_tmpl.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - (*dst)
    - src
    - src_stride
    - u
    argTypes:
    - pixel[]
    - pixel*
    - ptrdiff_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: backup4xU
    functionSourceFile: /src/dav1d/src/lr_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - pixel_copy
    linkageType: ''
    returnType: void
    signature: "void backup4xU(pixel (*dst)[4], const pixel *src, const ptrdiff_t
      src_stride,\n                      int u)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_STK_16
      Src: /src/dav1d/src/lr_apply_tmpl.c:133,1
    - Dst: backup4xU
      Src: /src/dav1d/src/lr_apply_tmpl.c:154,1
    - Dst: lr_stripe
      Src: /src/dav1d/src/lr_apply_tmpl.c:156,1
    - Dst: lr_stripe
      Src: /src/dav1d/src/lr_apply_tmpl.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 7
    argNames:
    - f
    - p
    - y
    - w
    - h
    - row_h
    - plane
    argTypes:
    - Dav1dFrameContext*
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 166
    functionName: lr_sbrow
    functionSourceFile: /src/dav1d/src/lr_apply_tmpl.c
    functionUses: 0
    functionsReached:
    - lr_stripe
    - ALIGN_STK_16
    - backup4xU
    linkageType: ''
    returnType: void
    signature: "void lr_sbrow(const Dav1dFrameContext *const f, pixel *p, const int
      y,\n                     const int w, const int h, const int row_h, const int
      plane)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: imin
      Src: /src/dav1d/src/lr_apply_tmpl.c:180,1
    - Dst: lr_sbrow
      Src: /src/dav1d/src/lr_apply_tmpl.c:182,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lr_apply_tmpl.c:182,1
    - Dst: imin
      Src: /src/dav1d/src/lr_apply_tmpl.c:191,1
    - Dst: lr_sbrow
      Src: /src/dav1d/src/lr_apply_tmpl.c:195,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lr_apply_tmpl.c:195,1
    - Dst: lr_sbrow
      Src: /src/dav1d/src/lr_apply_tmpl.c:199,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/lr_apply_tmpl.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - f
    - dst
    - sby
    argTypes:
    - Dav1dFrameContext*
    - pixel*[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 202
    functionName: bytefn
    functionSourceFile: /src/dav1d/src/lr_apply_tmpl.c
    functionUses: 11
    functionsReached:
    - PXSTRIDE
    - lr_sbrow
    - imin
    linkageType: ''
    returnType: void
    signature: "void bytefn(dav1d_lr_sbrow)(Dav1dFrameContext *const f, pixel *const
      dst[3],\n                            const int sby)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: decl_itx_fn
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx_fn(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: decl_itx2_fns
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx2_fns(w, h, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: decl_itx12_fns
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx12_fns(w, h, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: decl_itx16_fns
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx16_fns(w, h, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: decl_itx17_fns
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx17_fns(w, h, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - type
    - ','
    - type_enum
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: assign_itx_fn
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx_fn(pfx, w, h, type, type_enum, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: assign_itx1_fn
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx1_fn(pfx, w, h, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: assign_itx2_fn
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx2_fn(pfx, w, h, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: assign_itx12_fn
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx12_fn(pfx, w, h, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: assign_itx16_fn
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx16_fn(pfx, w, h, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: assign_itx17_fn
    functionSourceFile: /src/dav1d/src/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx17_fn(pfx, w, h, ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WINAPI_FAMILY_PARTITION
      Src: /src/dav1d/src/win32/thread.c:43,1
    - Dst: GetModuleHandleW
      Src: /src/dav1d/src/win32/thread.c:44,1
    - Dst: GetProcAddress
      Src: /src/dav1d/src/win32/thread.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: dav1d_init_thread
    functionSourceFile: /src/dav1d/src/win32/thread.c
    functionUses: 1
    functionsReached:
    - WINAPI_FAMILY_PARTITION
    - GetProcAddress
    - GetModuleHandleW
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_init_thread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_thread_description
      Src: /src/dav1d/src/win32/thread.c:54,1
    - Dst: GetCurrentThread
      Src: /src/dav1d/src/win32/thread.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: dav1d_set_thread_name
    functionSourceFile: /src/dav1d/src/win32/thread.c
    functionUses: 1
    functionsReached:
    - GetCurrentThread
    - set_thread_description
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_set_thread_name(const wchar_t *const name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_t*::func
      Src: /src/dav1d/src/win32/thread.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: thread_entrypoint
    functionSourceFile: /src/dav1d/src/win32/thread.c
    functionUses: 0
    functionsReached:
    - pthread_t*::func
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned thread_entrypoint(void *const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _beginthreadex
      Src: /src/dav1d/src/win32/thread.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - thread
    - attr
    - (*const func)(void*)
    - arg
    argTypes:
    - pthread_t*
    - pthread_attr_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: dav1d_pthread_create
    functionSourceFile: /src/dav1d/src/win32/thread.c
    functionUses: 0
    functionsReached:
    - _beginthreadex
    linkageType: ''
    returnType: COLD
    signature: "COLD dav1d_pthread_create(pthread_t *const thread,\n                              const
      pthread_attr_t *const attr,\n                              void *(*const func)(void*),
      void *const arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/dav1d/src/win32/thread.c:76,1
    - Dst: CloseHandle
      Src: /src/dav1d/src/win32/thread.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - thread
    - res
    argTypes:
    - pthread_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: dav1d_pthread_join
    functionSourceFile: /src/dav1d/src/win32/thread.c
    functionUses: 0
    functionsReached:
    - WaitForSingleObject
    - CloseHandle
    linkageType: ''
    returnType: COLD
    signature: COLD dav1d_pthread_join(pthread_t *const thread, void **const res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InitOnceBeginInitialize
      Src: /src/dav1d/src/win32/thread.c:90,1
    - Dst: init_routine
      Src: /src/dav1d/src/win32/thread.c:94,1
    - Dst: InitOnceComplete
      Src: /src/dav1d/src/win32/thread.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - once_control
    argTypes:
    - pthread_once_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: dav1d_pthread_once
    functionSourceFile: /src/dav1d/src/win32/thread.c
    functionUses: 0
    functionsReached:
    - InitOnceComplete
    - InitOnceBeginInitialize
    - init_routine
    linkageType: ''
    returnType: COLD
    signature: "COLD dav1d_pthread_once(pthread_once_t *const once_control,\n                            void
      (*const init_routine)(void))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: decl_loopfilter_sb_fns
    functionSourceFile: /src/dav1d/src/x86/loopfilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_loopfilter_sb_fns(ext)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/x86/loopfilter.h:42,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:46,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:47,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:48,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:49,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:54,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:55,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:56,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:57,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:61,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:62,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:65,1
    - Dst: BF
      Src: /src/dav1d/src/x86/loopfilter.h:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dLoopFilterDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 69
    functionName: loop_filter_dsp_init_x86
    functionSourceFile: /src/dav1d/src/x86/loopfilter.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE loop_filter_dsp_init_x86(Dav1dLoopFilterDSPContext *const
      c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/x86/refmvs.h:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dRefmvsDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 66
    functionName: refmvs_dsp_init_x86
    functionSourceFile: /src/dav1d/src/x86/refmvs.h
    functionUses: 1
    functionsReached:
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE refmvs_dsp_init_x86(Dav1dRefmvsDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: X
    functionSourceFile: /src/dav1d/src/x86/cpu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(reg, mask)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_cpu_cpuid
      Src: /src/dav1d/src/x86/cpu.c:55,1
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/x86/cpu.c:56,1
    - Dst: dav1d_cpu_cpuid
      Src: /src/dav1d/src/x86/cpu.c:60,1
    - Dst: X
      Src: /src/dav1d/src/x86/cpu.c:63,1
    - Dst: X
      Src: /src/dav1d/src/x86/cpu.c:65,1
    - Dst: X
      Src: /src/dav1d/src/x86/cpu.c:67,1
    - Dst: X
      Src: /src/dav1d/src/x86/cpu.c:73,1
    - Dst: dav1d_cpu_xgetbv
      Src: /src/dav1d/src/x86/cpu.c:74,1
    - Dst: X
      Src: /src/dav1d/src/x86/cpu.c:75,1
    - Dst: dav1d_cpu_cpuid
      Src: /src/dav1d/src/x86/cpu.c:77,1
    - Dst: X
      Src: /src/dav1d/src/x86/cpu.c:78,1
    - Dst: X
      Src: /src/dav1d/src/x86/cpu.c:80,1
    - Dst: X
      Src: /src/dav1d/src/x86/cpu.c:81,1
    - Dst: X
      Src: /src/dav1d/src/x86/cpu.c:81,1
    - Dst: memcmp
      Src: /src/dav1d/src/x86/cpu.c:89,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 98
    functionName: dav1d_get_cpu_flags_x86
    functionSourceFile: /src/dav1d/src/x86/cpu.c
    functionUses: 1
    functionsReached:
    - X
    - dav1d_cpu_xgetbv
    - dav1d_get_default_cpu_flags
    - dav1d_cpu_cpuid
    - memcmp
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_x86(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: decl_fn
    functionSourceFile: /src/dav1d/src/x86/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_fn(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: init_mc_fn
    functionSourceFile: /src/dav1d/src/x86/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_mc_fn(type, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: init_mct_fn
    functionSourceFile: /src/dav1d/src/x86/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_mct_fn(type, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: init_mc_scaled_fn
    functionSourceFile: /src/dav1d/src/x86/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_mc_scaled_fn(type, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: init_mct_scaled_fn
    functionSourceFile: /src/dav1d/src/x86/mc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_mct_scaled_fn(type, name, suffix)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/x86/mc.h:93,1
    - Dst: init_8tap_fns
      Src: /src/dav1d/src/x86/mc.h:98,1
    - Dst: init_mc_fn
      Src: /src/dav1d/src/x86/mc.h:100,1
    - Dst: init_mct_fn
      Src: /src/dav1d/src/x86/mc.h:101,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:103,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:104,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:105,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:106,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:107,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:108,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:109,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:110,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:111,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:112,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:114,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:115,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:116,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:117,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:118,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:119,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:120,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:121,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:122,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:123,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:125,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:126,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:127,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:128,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:129,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:130,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:131,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:132,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:133,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:134,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:135,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:136,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:137,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:143,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:144,1
    - Dst: init_8tap_fns
      Src: /src/dav1d/src/x86/mc.h:151,1
    - Dst: init_mc_fn
      Src: /src/dav1d/src/x86/mc.h:153,1
    - Dst: init_mct_fn
      Src: /src/dav1d/src/x86/mc.h:154,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:156,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:157,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:158,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:159,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:160,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:161,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:162,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:163,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:164,1
    - Dst: init_mc_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:165,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:167,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:168,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:169,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:170,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:171,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:172,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:173,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:174,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:175,1
    - Dst: init_mct_scaled_fn
      Src: /src/dav1d/src/x86/mc.h:176,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:178,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:179,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:180,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:181,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:182,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:183,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:184,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:185,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:186,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:187,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:188,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:189,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:190,1
    - Dst: init_8tap_fns
      Src: /src/dav1d/src/x86/mc.h:195,1
    - Dst: init_mc_fn
      Src: /src/dav1d/src/x86/mc.h:197,1
    - Dst: init_mct_fn
      Src: /src/dav1d/src/x86/mc.h:198,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:200,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:201,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:202,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:203,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:204,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:205,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:206,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:207,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:208,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:211,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:212,1
    - Dst: BF
      Src: /src/dav1d/src/x86/mc.h:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 100
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dMCDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 216
    functionName: mc_dsp_init_x86
    functionSourceFile: /src/dav1d/src/x86/mc.h
    functionUses: 1
    functionsReached:
    - init_mc_fn
    - init_8tap_fns
    - init_mc_scaled_fn
    - dav1d_get_cpu_flags
    - init_mct_fn
    - BF
    - init_mct_scaled_fn
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mc_dsp_init_x86(Dav1dMCDSPContext *const c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/x86/pal.h:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dPalDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: pal_dsp_init_x86
    functionSourceFile: /src/dav1d/src/x86/pal.h
    functionUses: 1
    functionsReached:
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE pal_dsp_init_x86(Dav1dPalDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - cdf
    - ','
    - symb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: dav1d_msac_decode_symbol_adapt16
    functionSourceFile: /src/dav1d/src/x86/msac.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_msac_decode_symbol_adapt16(ctx, cdf, symb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/x86/msac.h:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - MsacContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: msac_init_x86
    functionSourceFile: /src/dav1d/src/x86/msac.h
    functionUses: 1
    functionsReached:
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE msac_init_x86(MsacContext *const s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: decl_fg_fns
    functionSourceFile: /src/dav1d/src/x86/filmgrain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_fg_fns(ext)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/x86/filmgrain.h:46,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:50,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:51,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:52,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:53,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:54,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:55,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:56,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:57,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:62,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:63,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:64,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:65,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:68,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:69,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:70,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:71,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:77,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:78,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:79,1
    - Dst: BF
      Src: /src/dav1d/src/x86/filmgrain.h:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dFilmGrainDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 83
    functionName: film_grain_dsp_init_x86
    functionSourceFile: /src/dav1d/src/x86/filmgrain.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE film_grain_dsp_init_x86(Dav1dFilmGrainDSPContext *const
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: decl_fn
    functionSourceFile: /src/dav1d/src/x86/ipred.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_fn(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type0
    - ','
    - type1
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: init_fn
    functionSourceFile: /src/dav1d/src/x86/ipred.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_fn(type0, type1, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: init_angular_ipred_fn
    functionSourceFile: /src/dav1d/src/x86/ipred.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_angular_ipred_fn(type, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: init_cfl_pred_fn
    functionSourceFile: /src/dav1d/src/x86/ipred.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_cfl_pred_fn(type, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: init_cfl_ac_fn
    functionSourceFile: /src/dav1d/src/x86/ipred.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_cfl_ac_fn(type, name, suffix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/x86/ipred.h:72,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:76,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:77,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:78,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:79,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:80,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:81,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:82,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:83,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:84,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:85,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:86,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:87,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:88,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:89,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/x86/ipred.h:91,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/x86/ipred.h:92,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/x86/ipred.h:93,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/x86/ipred.h:94,1
    - Dst: init_cfl_ac_fn
      Src: /src/dav1d/src/x86/ipred.h:96,1
    - Dst: init_cfl_ac_fn
      Src: /src/dav1d/src/x86/ipred.h:97,1
    - Dst: init_cfl_ac_fn
      Src: /src/dav1d/src/x86/ipred.h:98,1
    - Dst: BF
      Src: /src/dav1d/src/x86/ipred.h:100,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:105,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:106,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:107,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:108,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:109,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:110,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:111,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:112,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:113,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:114,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:115,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:116,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:117,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:118,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/x86/ipred.h:120,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/x86/ipred.h:121,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/x86/ipred.h:122,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/x86/ipred.h:123,1
    - Dst: init_cfl_ac_fn
      Src: /src/dav1d/src/x86/ipred.h:125,1
    - Dst: init_cfl_ac_fn
      Src: /src/dav1d/src/x86/ipred.h:126,1
    - Dst: init_cfl_ac_fn
      Src: /src/dav1d/src/x86/ipred.h:127,1
    - Dst: BF
      Src: /src/dav1d/src/x86/ipred.h:129,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:134,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:135,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:136,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:137,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:138,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:139,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:140,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:142,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:143,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:144,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:145,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:146,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:147,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:148,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/x86/ipred.h:149,1
    - Dst: BF
      Src: /src/dav1d/src/x86/ipred.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 67
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dIntraPredDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 153
    functionName: intra_pred_dsp_init_x86
    functionSourceFile: /src/dav1d/src/x86/ipred.h
    functionUses: 1
    functionsReached:
    - BF
    - init_cfl_pred_fn
    - dav1d_get_cpu_flags
    - init_cfl_ac_fn
    - init_angular_ipred_fn
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE intra_pred_dsp_init_x86(Dav1dIntraPredDSPContext *const
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: decl_cdef_fns
    functionSourceFile: /src/dav1d/src/x86/cdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_cdef_fns(ext)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/x86/cdef.h:47,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:52,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:53,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:54,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:59,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:60,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:61,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:62,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:66,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:68,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:69,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:70,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:76,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:77,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:78,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:79,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:83,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:84,1
    - Dst: BF
      Src: /src/dav1d/src/x86/cdef.h:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dCdefDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 87
    functionName: cdef_dsp_init_x86
    functionSourceFile: /src/dav1d/src/x86/cdef.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE cdef_dsp_init_x86(Dav1dCdefDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: decl_wiener_filter_fns
    functionSourceFile: /src/dav1d/src/x86/looprestoration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_wiener_filter_fns(ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: decl_sgr_filter_fns
    functionSourceFile: /src/dav1d/src/x86/looprestoration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_sgr_filter_fns(ext)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/x86/looprestoration.h:51,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:55,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:56,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:60,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:61,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:63,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:64,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:65,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:71,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:72,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:74,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:75,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:76,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:81,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:86,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:89,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:90,1
    - Dst: BF
      Src: /src/dav1d/src/x86/looprestoration.h:91,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - c
    - bpc
    argTypes:
    - Dav1dLoopRestorationDSPContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 94
    functionName: loop_restoration_dsp_init_x86
    functionSourceFile: /src/dav1d/src/x86/looprestoration.h
    functionUses: 0
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE loop_restoration_dsp_init_x86(Dav1dLoopRestorationDSPContext
      *const c, const int bpc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - bits
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: BF_BPC
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF_BPC(x, bits, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: decl_itx_fns
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx_fns(ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - bpc
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: decl_itx2_bpc_fns
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx2_bpc_fns(w, h, bpc, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - bpc
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 71
    functionName: decl_itx12_bpc_fns
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx12_bpc_fns(w, h, bpc, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - bpc
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: decl_itx16_bpc_fns
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx16_bpc_fns(w, h, bpc, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bpc
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: decl_itx_bpc_fns
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx_bpc_fns(bpc, ext)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/x86/itx.h:144,1
    - Dst: assign_itx_fn
      Src: /src/dav1d/src/x86/itx.h:148,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:153,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:154,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:155,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:156,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:157,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:158,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:159,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:160,1
    - Dst: assign_itx12_fn
      Src: /src/dav1d/src/x86/itx.h:161,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:162,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:163,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:164,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:165,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:166,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:167,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:168,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:169,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:170,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:171,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:179,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:180,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:181,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:182,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:183,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:184,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:185,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:186,1
    - Dst: assign_itx12_fn
      Src: /src/dav1d/src/x86/itx.h:187,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:188,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:189,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:190,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:191,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:192,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:193,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:194,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:195,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:196,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:197,1
    - Dst: assign_itx_fn
      Src: /src/dav1d/src/x86/itx.h:205,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:208,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:209,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:210,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:211,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:212,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:213,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:214,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:215,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:216,1
    - Dst: assign_itx12_fn
      Src: /src/dav1d/src/x86/itx.h:217,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:218,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:219,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:220,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:221,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:222,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:223,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:224,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:225,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:226,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:229,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:230,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:231,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:232,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:233,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:234,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:235,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:236,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:237,1
    - Dst: assign_itx12_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:238,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:239,1
    - Dst: assign_itx1_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:240,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:241,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:242,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:243,1
    - Dst: assign_itx1_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:244,1
    - Dst: assign_itx1_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:245,1
    - Dst: assign_itx1_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:246,1
    - Dst: assign_itx1_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:247,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:249,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:250,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:251,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:252,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:253,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:254,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:255,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:256,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:257,1
    - Dst: assign_itx12_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:258,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:259,1
    - Dst: assign_itx_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:260,1
    - Dst: assign_itx_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:261,1
    - Dst: assign_itx_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:262,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:269,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:270,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:271,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:272,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:273,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:274,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:275,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:276,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/x86/itx.h:277,1
    - Dst: assign_itx12_fn
      Src: /src/dav1d/src/x86/itx.h:278,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:279,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:280,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:281,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:282,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/x86/itx.h:283,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:284,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:285,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:286,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/x86/itx.h:287,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:290,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:291,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:292,1
    - Dst: assign_itx16_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:293,1
    - Dst: assign_itx12_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:294,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:295,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:296,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:297,1
    - Dst: assign_itx2_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:298,1
    - Dst: assign_itx1_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:299,1
    - Dst: assign_itx1_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:300,1
    - Dst: assign_itx1_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:301,1
    - Dst: assign_itx1_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:302,1
    - Dst: assign_itx1_bpc_fn
      Src: /src/dav1d/src/x86/itx.h:303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 145
    argCount: 3
    argNames:
    - c
    - bpc
    - all_simd
    argTypes:
    - Dav1dInvTxfmDSPContext*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 307
    functionName: itx_dsp_init_x86
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 1
    functionsReached:
    - assign_itx2_bpc_fn
    - assign_itx16_bpc_fn
    - assign_itx12_fn
    - assign_itx_bpc_fn
    - assign_itx16_fn
    - assign_itx2_fn
    - dav1d_get_cpu_flags
    - assign_itx12_bpc_fn
    - assign_itx1_bpc_fn
    - assign_itx_fn
    - assign_itx1_fn
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: "ALWAYS_INLINE itx_dsp_init_x86(Dav1dInvTxfmDSPContext *const c,\n
      \                                          const int bpc, int *const all_simd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - type
    - ','
    - type_enum
    - ','
    - bpc
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: assign_itx_bpc_fn
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx_bpc_fn(pfx, w, h, type, type_enum, bpc, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - bpc
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: assign_itx1_bpc_fn
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx1_bpc_fn(pfx, w, h, bpc, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - bpc
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: assign_itx2_bpc_fn
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx2_bpc_fn(pfx, w, h, bpc, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - bpc
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 136
    functionName: assign_itx12_bpc_fn
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx12_bpc_fn(pfx, w, h, bpc, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - pfx
    - ','
    - w
    - ','
    - h
    - ','
    - bpc
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: assign_itx16_bpc_fn
    functionSourceFile: /src/dav1d/src/x86/itx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_itx16_bpc_fn(pfx, w, h, bpc, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/riscv/cpu.c:43,1
    - Dst: dav1d_getauxval
      Src: /src/dav1d/src/riscv/cpu.c:45,1
    - Dst: dav1d_has_compliant_rvv
      Src: /src/dav1d/src/riscv/cpu.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: dav1d_get_cpu_flags_riscv
    functionSourceFile: /src/dav1d/src/riscv/cpu.c
    functionUses: 1
    functionsReached:
    - dav1d_getauxval
    - dav1d_has_compliant_rvv
    - dav1d_get_default_cpu_flags
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_riscv(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/riscv/mc.h:60,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:64,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:65,1
    - Dst: dav1d_get_vlen
      Src: /src/dav1d/src/riscv/mc.h:67,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:68,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:69,1
    - Dst: dav1d_get_vlen
      Src: /src/dav1d/src/riscv/mc.h:72,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:73,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:74,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:78,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:79,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:81,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:82,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:83,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:85,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:86,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:87,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:89,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:90,1
    - Dst: dav1d_get_vlen
      Src: /src/dav1d/src/riscv/mc.h:92,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:93,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:95,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:96,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:97,1
    - Dst: dav1d_get_vlen
      Src: /src/dav1d/src/riscv/mc.h:99,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/mc.h:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dMCDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 103
    functionName: mc_dsp_init_riscv
    functionSourceFile: /src/dav1d/src/riscv/mc.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_vlen
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mc_dsp_init_riscv(Dav1dMCDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: dav1d_get_vlen
    functionSourceFile: /src/dav1d/src/riscv/cpu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_get_vlen()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/riscv/pal.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dPalDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: pal_dsp_init_riscv
    functionSourceFile: /src/dav1d/src/riscv/pal.h
    functionUses: 1
    functionsReached:
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE pal_dsp_init_riscv(Dav1dPalDSPContext *const c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/riscv/ipred.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dIntraPredDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 78
    functionName: intra_pred_dsp_init_riscv
    functionSourceFile: /src/dav1d/src/riscv/ipred.h
    functionUses: 1
    functionsReached:
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE intra_pred_dsp_init_riscv(Dav1dIntraPredDSPContext *const
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/riscv/cdef.h:9,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/cdef.h:13,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/cdef.h:14,1
    - Dst: BF
      Src: /src/dav1d/src/riscv/cdef.h:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dCdefDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 8
    functionDepth: 2
    functionLinenumber: 8
    functionLinenumberEnd: 16
    functionName: cdef_dsp_init_riscv
    functionSourceFile: /src/dav1d/src/riscv/cdef.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE cdef_dsp_init_riscv(Dav1dCdefDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: decl_itx_fns
    functionSourceFile: /src/dav1d/src/riscv/itx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_itx_fns(ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/riscv/itx.h:45,1
    - Dst: assign_itx17_fn
      Src: /src/dav1d/src/riscv/itx.h:50,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/riscv/itx.h:51,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/riscv/itx.h:52,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/riscv/itx.h:53,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/riscv/itx.h:54,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/riscv/itx.h:55,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/riscv/itx.h:56,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/riscv/itx.h:57,1
    - Dst: assign_itx12_fn
      Src: /src/dav1d/src/riscv/itx.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - c
    - bpc
    argTypes:
    - Dav1dInvTxfmDSPContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: itx_dsp_init_riscv
    functionSourceFile: /src/dav1d/src/riscv/itx.h
    functionUses: 1
    functionsReached:
    - assign_itx12_fn
    - assign_itx17_fn
    - assign_itx16_fn
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE itx_dsp_init_riscv(Dav1dInvTxfmDSPContext *const c, int
      const bpc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/loongarch/loopfilter.h:40,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/loopfilter.h:45,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/loopfilter.h:46,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/loopfilter.h:47,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/loopfilter.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dLoopFilterDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: loop_filter_dsp_init_loongarch
    functionSourceFile: /src/dav1d/src/loongarch/loopfilter.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE loop_filter_dsp_init_loongarch(Dav1dLoopFilterDSPContext
      *const c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/loongarch/refmvs.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dRefmvsDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: refmvs_dsp_init_loongarch
    functionSourceFile: /src/dav1d/src/loongarch/refmvs.h
    functionUses: 1
    functionsReached:
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE refmvs_dsp_init_loongarch(Dav1dRefmvsDSPContext *const
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/loongarch/cpu.c:41,1
    - Dst: dav1d_getauxval
      Src: /src/dav1d/src/loongarch/cpu.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: dav1d_get_cpu_flags_loongarch
    functionSourceFile: /src/dav1d/src/loongarch/cpu.c
    functionUses: 1
    functionsReached:
    - dav1d_getauxval
    - dav1d_get_default_cpu_flags
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_loongarch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: init_mc_fn
    functionSourceFile: /src/dav1d/src/loongarch/mc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_mc_fn(type, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: init_mct_fn
    functionSourceFile: /src/dav1d/src/loongarch/mc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_mct_fn(type, name, suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/loongarch/mc.h:65,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:69,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:70,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:71,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:72,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:73,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:74,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:75,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:76,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:77,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:78,1
    - Dst: init_8tap_fns
      Src: /src/dav1d/src/loongarch/mc.h:80,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:84,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:85,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:86,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:87,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:88,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:89,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/mc.h:90,1
    - Dst: init_8tap_gen
      Src: /src/dav1d/src/loongarch/mc.h:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dMCDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 94
    functionName: mc_dsp_init_loongarch
    functionSourceFile: /src/dav1d/src/loongarch/mc.h
    functionUses: 1
    functionsReached:
    - BF
    - init_8tap_gen
    - init_8tap_fns
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mc_dsp_init_loongarch(Dav1dMCDSPContext *const c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:74,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:75,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:76,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:77,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:80,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:81,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:82,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:84,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:85,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:86,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:93,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:94,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:95,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:96,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:97,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:100,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:101,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:102,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:103,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:105,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:106,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:107,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:113,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:115,1
    - Dst: pixel_set
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:123,1
    - Dst: pixel_set
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:132,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:139,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 8
    argNames:
    - dst
    - p
    - stride
    - (*left)
    - lpf
    - unit_w
    - stripe_h
    - edges
    argTypes:
    - uint8_t*
    - uint8_t*
    - ptrdiff_t
    - uint8_t[]
    - uint8_t*
    - int
    - int
    - enum LrEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 143
    functionName: padding
    functionSourceFile: /src/dav1d/src/loongarch/looprestoration_inner.c
    functionUses: 1
    functionsReached:
    - PXSTRIDE
    - pixel_set
    - pixel_copy
    linkageType: ''
    returnType: void
    signature: "void padding(uint8_t *dst, const uint8_t *p,\n                           const
      ptrdiff_t stride, const uint8_t (*left)[4],\n                           const
      uint8_t *lpf, int unit_w, const int stripe_h,\n                           const
      enum LrEdgeFlags edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - REST_UNIT_STRIDE
    - dav1d_wiener_filter_lasx
    argTypes:
    - padding*
    - BF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 216
    functionName: ALIGN_STK_16
    functionSourceFile: /src/dav1d/src/loongarch/looprestoration_inner.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ALIGN_STK_16(uint8_t, tmp, 70 /*(64 + 3 + 3)*/ * REST_UNIT_STRIDE,);\n
      \   padding(tmp, p, p_stride, left, lpf, w, h, edges);\n    ALIGN_STK_16(int32_t,
      hor, 70 /*(64 + 3 + 3)*/ * REST_UNIT_STRIDE + 64,);\n\n    BF(dav1d_wiener_filter_h,
      lsx)(hor, tmp, filter[0], w, h + 6);\n    BF(dav1d_wiener_filter_v, lsx)(p,
      p_stride, hor, filter[1], w, h);\n}\n\nvoid dav1d_wiener_filter_lasx(uint8_t
      *p, const ptrdiff_t p_stride,\n                              const uint8_t (*const
      left)[4],\n                              const uint8_t *lpf,\n                              const
      int w, const int h,\n                              const LooprestorationParams
      *const params,\n                              const enum LrEdgeFlags edges HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BF
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:221,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/looprestoration_inner.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - sumsq
    - sum
    - src
    - w
    - h
    argTypes:
    - int32_t*
    - coef*
    - pixel*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: boxsum3_lasx
    functionSourceFile: /src/dav1d/src/loongarch/looprestoration_inner.c
    functionUses: 0
    functionsReached:
    - BF
    linkageType: ''
    returnType: void
    signature: "void boxsum3_lasx(int32_t *sumsq, coef *sum, pixel *src,\n                               const
      int w, const int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type0
    - ','
    - type1
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: init_fn
    functionSourceFile: /src/dav1d/src/loongarch/ipred.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_fn(type0, type1, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: init_angular_ipred_fn
    functionSourceFile: /src/dav1d/src/loongarch/ipred.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_angular_ipred_fn(type, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: init_cfl_pred_fn
    functionSourceFile: /src/dav1d/src/loongarch/ipred.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_cfl_pred_fn(type, name, suffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/loongarch/ipred.h:69,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:74,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:75,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:76,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:77,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:78,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:79,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:80,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:81,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:82,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:83,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:84,1
    - Dst: init_angular_ipred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:85,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:87,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:88,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:89,1
    - Dst: init_cfl_pred_fn
      Src: /src/dav1d/src/loongarch/ipred.h:90,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/ipred.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dIntraPredDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 94
    functionName: intra_pred_dsp_init_loongarch
    functionSourceFile: /src/dav1d/src/loongarch/ipred.h
    functionUses: 1
    functionsReached:
    - init_angular_ipred_fn
    - init_cfl_pred_fn
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE intra_pred_dsp_init_loongarch(Dav1dIntraPredDSPContext
      *const c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/loongarch/cdef.h:41,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/cdef.h:46,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/cdef.h:47,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/cdef.h:48,1
    - Dst: BF
      Src: /src/dav1d/src/loongarch/cdef.h:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dCdefDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: cdef_dsp_init_loongarch
    functionSourceFile: /src/dav1d/src/loongarch/cdef.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE cdef_dsp_init_loongarch(Dav1dCdefDSPContext *const c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/loongarch/looprestoration.h:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - c
    - bpc
    argTypes:
    - Dav1dLoopRestorationDSPContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: loop_restoration_dsp_init_loongarch
    functionSourceFile: /src/dav1d/src/loongarch/looprestoration.h
    functionUses: 0
    functionsReached:
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE loop_restoration_dsp_init_loongarch(Dav1dLoopRestorationDSPContext
      *const c, int bpc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/loongarch/itx.h:72,1
    - Dst: assign_itx17_fn
      Src: /src/dav1d/src/loongarch/itx.h:78,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/loongarch/itx.h:79,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/loongarch/itx.h:80,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/loongarch/itx.h:81,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/loongarch/itx.h:82,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/loongarch/itx.h:83,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/loongarch/itx.h:84,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/loongarch/itx.h:85,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/loongarch/itx.h:86,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/loongarch/itx.h:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - c
    - bpc
    argTypes:
    - Dav1dInvTxfmDSPContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 117
    functionName: itx_dsp_init_loongarch
    functionSourceFile: /src/dav1d/src/loongarch/itx.h
    functionUses: 1
    functionsReached:
    - assign_itx17_fn
    - assign_itx16_fn
    - assign_itx2_fn
    - dav1d_get_cpu_flags
    - assign_itx1_fn
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE itx_dsp_init_loongarch(Dav1dInvTxfmDSPContext *const
      c, int bpc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/ppc/loopfilter.h:37,1
    - Dst: BF
      Src: /src/dav1d/src/ppc/loopfilter.h:42,1
    - Dst: BF
      Src: /src/dav1d/src/ppc/loopfilter.h:43,1
    - Dst: BF
      Src: /src/dav1d/src/ppc/loopfilter.h:44,1
    - Dst: BF
      Src: /src/dav1d/src/ppc/loopfilter.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dLoopFilterDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: loop_filter_dsp_init_ppc
    functionSourceFile: /src/dav1d/src/ppc/loopfilter.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE loop_filter_dsp_init_ppc(Dav1dLoopFilterDSPContext *const
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:36,1
    - Dst: vec_min
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - v
    - minv
    - maxv
    argTypes:
    - i32x4
    - i32x4
    - i32x4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: iclip_vec
    functionSourceFile: /src/dav1d/src/ppc/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_min
    - vec_max
    linkageType: ''
    returnType: i32x4
    signature: i32x4 iclip_vec(i32x4 v, const i32x4 minv, const i32x4 maxv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - v
    - ','
    - f
    - ','
    - ssum1
    - ','
    - ssum2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: APPLY_FILTER_H
    functionSourceFile: /src/dav1d/src/ppc/looprestoration_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY_FILTER_H(v, f, ssum1, ssum2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:53,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:54,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:55,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:56,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:57,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:58,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:60,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:61,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:62,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:63,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:64,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:65,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:66,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:67,1
    - Dst: vec_ld
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:76,1
    - Dst: vec_ld
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:77,1
    - Dst: vec_sld
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:79,1
    - Dst: vec_sld
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:80,1
    - Dst: vec_sld
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:81,1
    - Dst: vec_sld
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:82,1
    - Dst: vec_sld
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:83,1
    - Dst: vec_sld
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:84,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:86,1
    - Dst: u8l_to_u16
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:87,1
    - Dst: i16h_to_i32
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:89,1
    - Dst: i16l_to_i32
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:90,1
    - Dst: i16h_to_i32
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:91,1
    - Dst: i16l_to_i32
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:92,1
    - Dst: APPLY_FILTER_H
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:97,1
    - Dst: APPLY_FILTER_H
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:98,1
    - Dst: APPLY_FILTER_H
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:99,1
    - Dst: APPLY_FILTER_H
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:100,1
    - Dst: APPLY_FILTER_H
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:101,1
    - Dst: APPLY_FILTER_H
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:102,1
    - Dst: APPLY_FILTER_H
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:103,1
    - Dst: i16h_to_i32
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:105,1
    - Dst: i16l_to_i32
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:106,1
    - Dst: i16h_to_i32
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:107,1
    - Dst: i16l_to_i32
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:108,1
    - Dst: iclip_vec
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:115,1
    - Dst: iclip_vec
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:116,1
    - Dst: iclip_vec
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:117,1
    - Dst: iclip_vec
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:118,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:120,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:121,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:122,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 5
    argNames:
    - hor_ptr
    - tmp_ptr
    - filterh
    - w
    - h
    argTypes:
    - int32_t*
    - uint8_t*
    - int16_t[]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 128
    functionName: wiener_filter_h_vsx
    functionSourceFile: /src/dav1d/src/ppc/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - APPLY_FILTER_H
    - vec_st
    - vec_ld
    - vec_vsx_ld
    - u8l_to_u16
    - u8h_to_u16
    - vec_sld
    - iclip_vec
    - i16l_to_i32
    - vec_splat
    - i16h_to_i32
    - vec_splats
    linkageType: ''
    returnType: void
    signature: "void wiener_filter_h_vsx(int32_t *hor_ptr,\n                                uint8_t
      *tmp_ptr,\n                                const int16_t filterh[8],\n                                const
      int w, const int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:131,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:132,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:133,1
    - Dst: vec_min
      Src: /src/dav1d/src/ppc/looprestoration_tmpl.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - i16x8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: iclip_u8_vec
    functionSourceFile: /src/dav1d/src/ppc/looprestoration_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_min
    - vec_max
    - vec_splats
    linkageType: ''
    returnType: i16x8
    signature: i16x8 iclip_u8_vec(i16x8 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - index
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: APPLY_FILTER_V
    functionSourceFile: /src/dav1d/src/ppc/looprestoration_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY_FILTER_V(index, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sumpixelv
    - ','
    - hor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 171
    functionName: LOAD_AND_APPLY_FILTER_V
    functionSourceFile: /src/dav1d/src/ppc/looprestoration_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_AND_APPLY_FILTER_V(sumpixelv, hor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - p
    - stride
    - (*const left)
    - lpf
    - w
    - h
    - params
    - edges
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - uint8_t[]
    - uint8_t*
    - int
    - int
    - LooprestorationParams*
    - enum LrEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 320
    functionName: dav1d_wiener_filter_vsx
    functionSourceFile: /src/dav1d/src/ppc/looprestoration_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dav1d_wiener_filter_vsx(uint8_t *p, const ptrdiff_t stride,\n
      \                            const uint8_t (*const left)[4],\n                             const
      uint8_t *lpf,\n                             const int w, const int h,\n                             const
      LooprestorationParams *const params,\n                             const enum
      LrEdgeFlags edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: i8h_to_i16
    functionSourceFile: /src/dav1d/src/ppc/dav1d_types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i8h_to_i16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: i8l_to_i16
    functionSourceFile: /src/dav1d/src/ppc/dav1d_types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i8l_to_i16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: u8h_to_i16
    functionSourceFile: /src/dav1d/src/ppc/dav1d_types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: u8h_to_i16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: u8l_to_i16
    functionSourceFile: /src/dav1d/src/ppc/dav1d_types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: u8l_to_i16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: u8h_to_u16
    functionSourceFile: /src/dav1d/src/ppc/dav1d_types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: u8h_to_u16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: u8l_to_u16
    functionSourceFile: /src/dav1d/src/ppc/dav1d_types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: u8l_to_u16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: u16h_to_i32
    functionSourceFile: /src/dav1d/src/ppc/dav1d_types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: u16h_to_i32(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: i16h_to_i32
    functionSourceFile: /src/dav1d/src/ppc/dav1d_types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i16h_to_i32(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: u16l_to_i32
    functionSourceFile: /src/dav1d/src/ppc/dav1d_types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: u16l_to_i32(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: i16l_to_i32
    functionSourceFile: /src/dav1d/src/ppc/dav1d_types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: i16l_to_i32(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/ppc/cpu.c:41,1
    - Dst: dav1d_getauxval
      Src: /src/dav1d/src/ppc/cpu.c:43,1
    - Dst: dav1d_getauxval
      Src: /src/dav1d/src/ppc/cpu.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: dav1d_get_cpu_flags_ppc
    functionSourceFile: /src/dav1d/src/ppc/cpu.c
    functionUses: 1
    functionsReached:
    - dav1d_getauxval
    - dav1d_get_default_cpu_flags
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_ppc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/ppc/mc.h:36,1
    - Dst: BF
      Src: /src/dav1d/src/ppc/mc.h:41,1
    - Dst: BF
      Src: /src/dav1d/src/ppc/mc.h:42,1
    - Dst: BF
      Src: /src/dav1d/src/ppc/mc.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dMCDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: mc_dsp_init_ppc
    functionSourceFile: /src/dav1d/src/ppc/mc.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mc_dsp_init_ppc(Dav1dMCDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: assert_eq
    functionSourceFile: /src/dav1d/src/ppc/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - h
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: MERGE_I32
    functionSourceFile: /src/dav1d/src/ppc/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGE_I32(a, b, h, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - h
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: DECLARE_MERGE_I32
    functionSourceFile: /src/dav1d/src/ppc/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_MERGE_I32(a, b, h, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: TRANSPOSE4_I32
    functionSourceFile: /src/dav1d/src/ppc/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRANSPOSE4_I32(c0, c1, c2, c3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 33
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c8
    - ','
    - c9
    - ','
    - cA
    - ','
    - cB
    - ','
    - cC
    - ','
    - cD
    - ','
    - cE
    - ','
    - cF
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 81
    functionName: TRANSPOSE8_I32
    functionSourceFile: /src/dav1d/src/ppc/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TRANSPOSE8_I32(c0, c1, c2, c3, c4, c5, c6, c7, \\\n                       c8,
      c9, cA, cB, cC, cD, cE, cF)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 33
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c8
    - ','
    - c9
    - ','
    - cA
    - ','
    - cB
    - ','
    - cC
    - ','
    - cD
    - ','
    - cE
    - ','
    - cF
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 104
    functionName: TRANSPOSE4x16_I32
    functionSourceFile: /src/dav1d/src/ppc/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TRANSPOSE4x16_I32(c0, c1, c2, c3, c4, c5, c6, c7, \\\n                          c8,
      c9, cA, cB, cC, cD, cE, cF)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vec_splat_s16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:34,1
    - Dst: vec_abs
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:36,1
    - Dst: vec_cmplt
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:37,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:38,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:39,1
    - Dst: vec_sra
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:39,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:39,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:40,1
    - Dst: vec_min
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:41,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:42,1
    - Dst: vec_sel
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - diff
    - threshold
    - shift
    argTypes:
    - i16x8
    - int16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: vconstrain
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sra
    - vec_sub
    - vec_abs
    - vec_min
    - vec_sel
    - vec_splat_s16
    - vec_max
    - vec_cmplt
    - vec_splats
    linkageType: ''
    returnType: i16x8
    signature: "i16x8 vconstrain(const i16x8 diff, const int16_t threshold,\n                               const
      uint16_t shift)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:52,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:65,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:65,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:66,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:66,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:69,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:70,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:77,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:77,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:78,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:78,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:81,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:82,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:86,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:86,1
    - Dst: vec_vsx_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:87,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:93,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:93,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:94,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 9
    argNames:
    - tmp
    - src
    - src_stride
    - (*left)
    - top
    - bottom
    - w
    - h
    - edges
    argTypes:
    - uint16_t*
    - uint8_t*
    - ptrdiff_t
    - uint8_t[]
    - uint8_t*
    - uint8_t*
    - int
    - int
    - enum CdefEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 114
    functionName: copy4xN
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_st
    - vec_vsx_ld
    - u8h_to_u16
    - vec_vsx_st
    - vec_splats
    linkageType: ''
    returnType: void
    signature: "void copy4xN(uint16_t *tmp,\n                           const uint8_t
      *src, const ptrdiff_t src_stride,\n                           const uint8_t
      (*left)[2], const uint8_t *const top,\n                           const uint8_t
      *const bottom, const int w, const int h,\n                           const enum
      CdefEdgeFlags edges)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:122,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:137,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:138,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:139,1
    - Dst: u8l_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:140,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:141,1
    - Dst: u8l_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:142,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:145,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:146,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:147,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:148,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:157,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:158,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:159,1
    - Dst: u8l_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:160,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:161,1
    - Dst: u8l_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:162,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:165,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:166,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:167,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:168,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:172,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:173,1
    - Dst: u8l_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:174,1
    - Dst: vec_vsx_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:175,1
    - Dst: vec_vsx_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:176,1
    - Dst: vec_vsx_ld
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:182,1
    - Dst: u8h_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:183,1
    - Dst: u8l_to_u16
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:184,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:185,1
    - Dst: vec_st
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:186,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 59
    argCount: 9
    argNames:
    - tmp
    - src
    - src_stride
    - (*left)
    - top
    - bottom
    - w
    - h
    - edges
    argTypes:
    - uint16_t*
    - uint8_t*
    - ptrdiff_t
    - uint8_t[]
    - uint8_t*
    - uint8_t*
    - int
    - int
    - enum CdefEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 206
    functionName: copy8xN
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_st
    - vec_vsx_ld
    - u8l_to_u16
    - u8h_to_u16
    - vec_vsx_st
    - vec_splats
    linkageType: ''
    returnType: void
    signature: "void copy8xN(uint16_t *tmp,\n                           const uint8_t
      *src, const ptrdiff_t src_stride,\n                           const uint8_t
      (*left)[2], const uint8_t *const top,\n                           const uint8_t
      *const bottom, const int w, const int h,\n                           const enum
      CdefEdgeFlags edges)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:209,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:211,1
    - Dst: vec_sel
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:213,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/cdef_tmpl.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - i16x8
    - i16x8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: max_mask
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_cmpeq
    - vec_sel
    - vec_max
    - vec_splats
    linkageType: ''
    returnType: i16x8
    signature: i16x8 max_mask(i16x8 a, i16x8 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: LOAD_PIX
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_PIX(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: LOAD_PIX4
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_PIX4(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - addr
    - ','
    - o0
    - ','
    - o1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: LOAD_DIR
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DIR(p, addr, o0, o1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - addr
    - ','
    - o0
    - ','
    - o1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: LOAD_DIR4
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DIR4(p, addr, o0, o1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - strength
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 252
    functionName: CONSTRAIN
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONSTRAIN(p, strength, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: MIN_MAX
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN_MAX(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: PRI_0_UPDATE_SUM
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRI_0_UPDATE_SUM(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: UPDATE_SUM
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_SUM(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: SEC_0_UPDATE_SUM
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_0_UPDATE_SUM(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - tmp_stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 632
    functionName: cdef_fn
    functionSourceFile: /src/dav1d/src/ppc/cdef_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cdef_fn(w, h, tmp_stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: DECLARE_ADD_16HL
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ADD_16HL(r, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: ADD_16HL
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_16HL(r, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: ADD_AND_SHIFT4
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_AND_SHIFT4(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: ADD_AND_SHIFT8
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_AND_SHIFT8(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: PACK_AND_SEL
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK_AND_SEL(v, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: UNPACK_16
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:271,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:272,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:273,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:274,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:276,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:278,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - out
    - dst
    - stridea
    argTypes:
    - u8x16
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: store_h_4
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_xst_len
    - vec_splat
    linkageType: ''
    returnType: void
    signature: void store_h_4(u8x16 out, uint8_t *dst, int stridea)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:285,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:286,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:287,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:289,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:291,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - outa
    - outb
    - dst
    - stridea
    argTypes:
    - u8x16
    - u8x16
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 294
    functionName: store_h_8
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_xst_len
    - vec_mergel
    linkageType: ''
    returnType: void
    signature: void store_h_8(u8x16 outa, u8x16 outb, uint8_t *dst, int stridea)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: MERGEH_4
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGEH_4(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: MERGEL_4
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGEL_4(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: MERGEH_U16_0123
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGEH_U16_0123(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: MERGEHL_U16_0123
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGEHL_U16_0123(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: MERGE_U16_0123
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGE_U16_0123(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dir
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: MERGEH_U32_LINE
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGEH_U32_LINE(dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dir
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: MERGEL_U32_LINE
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGEL_U32_LINE(dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - oh
    - ','
    - ol
    - ','
    - dira
    - ','
    - dirb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: MERGE_U32
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGE_U32(oh, ol, dira, dirb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: MERGEHL_U8
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGEHL_U8(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - out
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: MERGEHL_U16
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGEHL_U16(out, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - out
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: MERGEHL_U32
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGEHL_U32(out, a, b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LOAD4_H
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:351,1
    - Dst: LOAD4_H
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:353,1
    - Dst: LOAD4_H
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:355,1
    - Dst: LOAD4_H
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:357,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:359,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:360,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:361,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:362,1
    - Dst: MERGEH_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:364,1
    - Dst: MERGEH_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:365,1
    - Dst: MERGEH_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:366,1
    - Dst: MERGEH_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:367,1
    - Dst: MERGEH_U32_LINE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:369,1
    - Dst: MERGEL_U32_LINE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:370,1
    - Dst: MERGE_U32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:372,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:375,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:376,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:377,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:379,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:380,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:381,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:382,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:384,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:385,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:387,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:387,1
    - Dst: vec_cmple
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:388,1
    - Dst: vec_cmple
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:389,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:390,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:392,1
    - Dst: vec_all_eq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:393,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:396,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:397,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:401,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:402,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:403,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:404,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:406,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:407,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:408,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:409,1
    - Dst: store_h_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:412,1
    - Dst: store_h_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:416,1
    - Dst: store_h_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:420,1
    - Dst: store_h_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 6
    argNames:
    - dst
    - E
    - I
    - H
    - stridea
    - apply
    argTypes:
    - uint8_t*
    - u8x16
    - u8x16
    - u8x16
    - ptrdiff_t
    - b32x4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 426
    functionName: loop_filter_h_4_all
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sr
    - UNPACK_16
    - vec_absd
    - vec_splat_u8
    - vec_splats
    - vec_all_eq
    - LOAD4_H
    - vec_max
    - MERGEL_U32_LINE
    - vec_cmple
    - MERGEH_4
    - vec_and
    - vec_adds
    - MERGEH_U32_LINE
    - MERGE_U32
    - vec_mergel
    - store_h_4
    - MERGEH_U16_0123
    - vec_mergeh
    linkageType: ''
    returnType: void
    signature: "void loop_filter_h_4_all(uint8_t *dst, u8x16 E, u8x16 I, u8x16 H,\n
      \               const ptrdiff_t stridea, b32x4 apply)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOAD4_H
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:436,1
    - Dst: LOAD4_H
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:438,1
    - Dst: LOAD4_H
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:440,1
    - Dst: LOAD4_H
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:442,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:444,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:445,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:446,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:447,1
    - Dst: MERGE_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:449,1
    - Dst: MERGE_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:450,1
    - Dst: MERGE_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:451,1
    - Dst: MERGE_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:452,1
    - Dst: MERGEH_U32_LINE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:454,1
    - Dst: MERGEL_U32_LINE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:455,1
    - Dst: MERGEH_U32_LINE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:456,1
    - Dst: MERGE_U32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:458,1
    - Dst: MERGE_U32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:459,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:462,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:464,1
    - Dst: vec_splat_u16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:465,1
    - Dst: vec_splat_u16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:466,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:467,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:468,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:470,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:471,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:472,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:473,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:474,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:475,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:476,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:477,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:479,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:480,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:481,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:482,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:485,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:485,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:486,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:487,1
    - Dst: vec_cmple
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:488,1
    - Dst: vec_cmple
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:489,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:490,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:492,1
    - Dst: vec_all_eq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:493,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:496,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:497,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:498,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:499,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:500,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:501,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:503,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:505,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:506,1
    - Dst: vec_cmple
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:506,1
    - Dst: vec_andc
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:508,1
    - Dst: vec_any_ne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:510,1
    - Dst: vec_any_ne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:514,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:515,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:516,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:517,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:518,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:519,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:520,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:521,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:522,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:523,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:524,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:528,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:529,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:530,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:531,1
    - Dst: ADD_AND_SHIFT4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:533,1
    - Dst: ADD_AND_SHIFT4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:534,1
    - Dst: ADD_AND_SHIFT4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:535,1
    - Dst: ADD_AND_SHIFT4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:536,1
    - Dst: PACK_AND_SEL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:538,1
    - Dst: PACK_AND_SEL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:539,1
    - Dst: PACK_AND_SEL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:540,1
    - Dst: PACK_AND_SEL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:541,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:544,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:545,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:546,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:547,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:549,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:550,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:551,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:552,1
    - Dst: store_h_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:555,1
    - Dst: store_h_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:559,1
    - Dst: store_h_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:563,1
    - Dst: store_h_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:567,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 71
    argCount: 7
    argNames:
    - dst
    - E
    - I
    - H
    - stridea
    - apply
    - m6
    argTypes:
    - uint8_t*
    - u8x16
    - u8x16
    - u8x16
    - ptrdiff_t
    - b32x4
    - b32x4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 569
    functionName: loop_filter_h_6_all
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sr
    - UNPACK_16
    - vec_absd
    - vec_splat_u8
    - vec_splats
    - vec_all_eq
    - MERGE_U16_0123
    - LOAD4_H
    - vec_max
    - vec_andc
    - MERGEL_U32_LINE
    - vec_cmple
    - MERGEH_4
    - vec_and
    - vec_adds
    - ADD_AND_SHIFT4
    - vec_any_ne
    - PACK_AND_SEL
    - MERGEH_U32_LINE
    - vec_splat_u16
    - DECLARE_ADD_16HL
    - MERGE_U32
    - vec_mergel
    - store_h_4
    - vec_mergeh
    linkageType: ''
    returnType: void
    signature: "void loop_filter_h_6_all(uint8_t *dst, u8x16 E, u8x16 I, u8x16 H,\n
      \                   const ptrdiff_t stridea, b32x4 apply, b32x4 m6)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 650
    functionName: UNPACK_16
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:734,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:735,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:736,1
    - Dst: MERGEH_4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:737,1
    - Dst: MERGE_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:739,1
    - Dst: MERGE_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:740,1
    - Dst: MERGE_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:741,1
    - Dst: MERGE_U16_0123
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:742,1
    - Dst: MERGEH_U32_LINE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:744,1
    - Dst: MERGEL_U32_LINE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:745,1
    - Dst: MERGEH_U32_LINE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:746,1
    - Dst: MERGEL_U32_LINE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:747,1
    - Dst: MERGE_U32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:749,1
    - Dst: MERGE_U32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:750,1
    - Dst: MERGE_U32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:751,1
    - Dst: MERGE_U32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 753
    functionName: LOAD4_H
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 2
    functionsReached:
    - MERGEH_U32_LINE
    - MERGE_U16_0123
    - MERGE_U32
    - MERGEH_4
    - MERGEL_U32_LINE
    linkageType: ''
    returnType: void
    signature: void LOAD4_H(d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:966,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:967,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:968,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:969,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:971,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:972,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:973,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:975,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:976,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:977,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:978,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:980,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:981,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:983,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:983,1
    - Dst: vec_cmple
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:984,1
    - Dst: vec_cmple
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:985,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:986,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:988,1
    - Dst: vec_all_eq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:989,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:992,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:993,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:998,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:999,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - dst
    - E
    - I
    - H
    - strideb
    - apply
    argTypes:
    - uint8_t*
    - u8x16
    - u8x16
    - u8x16
    - ptrdiff_t
    - b32x4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 1001
    functionName: loop_filter_v_4_all
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_and
    - vec_all_eq
    - vec_sr
    - vec_cmple
    - UNPACK_16
    - vec_adds
    - vec_max
    - vec_absd
    - vec_splat_u8
    - vec_xl
    - vec_xst
    - vec_splats
    linkageType: ''
    returnType: void
    signature: "void loop_filter_v_4_all(uint8_t *dst, u8x16 E, u8x16 I, u8x16 H,\n
      \                   const ptrdiff_t strideb, b32x4 apply)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1014,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1015,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1016,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1017,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1018,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1019,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1021,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1023,1
    - Dst: vec_splat_u16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1024,1
    - Dst: vec_splat_u16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1025,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1026,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1027,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1029,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1030,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1031,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1032,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1033,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1034,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1035,1
    - Dst: vec_absd
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1036,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1038,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1039,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1040,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1041,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1044,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1044,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1045,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1046,1
    - Dst: vec_cmple
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1047,1
    - Dst: vec_cmple
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1048,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1049,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1051,1
    - Dst: vec_all_eq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1052,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1055,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1056,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1057,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1058,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1059,1
    - Dst: UNPACK_16
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1060,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1062,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1064,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1065,1
    - Dst: vec_cmple
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1065,1
    - Dst: vec_andc
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1067,1
    - Dst: vec_any_ne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1069,1
    - Dst: vec_any_ne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1073,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1074,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1075,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1076,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1077,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1078,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1079,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1080,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1081,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1082,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1083,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1087,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1088,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1089,1
    - Dst: DECLARE_ADD_16HL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1090,1
    - Dst: ADD_AND_SHIFT4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1092,1
    - Dst: ADD_AND_SHIFT4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1093,1
    - Dst: ADD_AND_SHIFT4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1094,1
    - Dst: ADD_AND_SHIFT4
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1095,1
    - Dst: PACK_AND_SEL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1097,1
    - Dst: PACK_AND_SEL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1098,1
    - Dst: PACK_AND_SEL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1099,1
    - Dst: PACK_AND_SEL
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1100,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1103,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1104,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1105,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 7
    argNames:
    - dst
    - E
    - I
    - H
    - strideb
    - apply
    - m6
    argTypes:
    - uint8_t*
    - u8x16
    - u8x16
    - u8x16
    - ptrdiff_t
    - b32x4
    - b32x4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1107
    functionName: loop_filter_v_6_all
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_and
    - vec_all_eq
    - vec_any_ne
    - vec_splat_u16
    - vec_sr
    - ADD_AND_SHIFT4
    - vec_cmple
    - PACK_AND_SEL
    - UNPACK_16
    - vec_adds
    - DECLARE_ADD_16HL
    - vec_max
    - vec_absd
    - vec_andc
    - vec_splat_u8
    - vec_xl
    - vec_xst
    - vec_splats
    linkageType: ''
    returnType: void
    signature: "void loop_filter_v_6_all(uint8_t *dst, u8x16 E, u8x16 I, u8x16 H,\n
      \                   const ptrdiff_t strideb, b32x4 apply, b32x4 m6)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1175
    functionName: UNPACK_16
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1359
    functionName: LPF
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LPF(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1361
    functionName: LPF
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LPF(fn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1370,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1371,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1372,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1375,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1376,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1377,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1378,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1379,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1380,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1381,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1382,1
    - Dst: vec_sl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1395,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1396,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1400,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1401,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1402,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1403,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1405,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1406,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1408,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1409,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1410,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1412,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1413,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1415,1
    - Dst: vec_sel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1417,1
    - Dst: vec_perm
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1419,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1421,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1422,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1423,1
    - Dst: vec_cmpne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1425,1
    - Dst: vec_all_eq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1427,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1430,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1431,1
    - Dst: vec_min
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1432,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1433,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1434,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1435,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1436,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1438,1
    - Dst: vec_any_ne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1440,1
    - Dst: loop_filter_h_16_all
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1441,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1441,1
    - Dst: vec_any_ne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1442,1
    - Dst: loop_filter_h_8_all
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1443,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1443,1
    - Dst: loop_filter_h_4_all
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1445,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 7
    argNames:
    - dst
    - stride
    - vmask
    - (*l)
    - b4_stride
    - lut
    - h
    argTypes:
    - pixel*
    - ptrdiff_t
    - uint32_t*
    - uint8_t[]
    - ptrdiff_t
    - Av1FilterLUT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1363
    functionDepth: 2
    functionLinenumber: 1363
    functionLinenumberEnd: 1448
    functionName: LPF
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sr
    - loop_filter_h_8_all
    - vec_perm
    - loop_filter_h_16_all
    - vec_splat_u8
    - vec_xl
    - vec_splats
    - vec_all_eq
    - vec_cmpeq
    - loop_filter_h_4_all
    - vec_max
    - vec_splat
    - vec_cmpne
    - vec_splat_u32
    - vec_and
    - vec_sl
    - vec_any_ne
    - vec_add
    - vec_min
    - vec_sel
    - vec_mergel
    - PXSTRIDE
    - vec_mergeh
    linkageType: ''
    returnType: void
    signature: "void LPF(h_sb_y)(pixel *dst, const ptrdiff_t stride,\n                 const
      uint32_t *const vmask,\n                 const uint8_t (*l)[4], ptrdiff_t b4_stride,\n
      \                const Av1FilterLUT *lut, const int h)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1457,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1458,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1459,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1461,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1462,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1463,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1465,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1466,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1467,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1468,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1469,1
    - Dst: vec_sl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1482,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1488,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1489,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1491,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1492,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1493,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1495,1
    - Dst: vec_sel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1497,1
    - Dst: vec_perm
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1499,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1501,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1502,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1503,1
    - Dst: vec_cmpne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1505,1
    - Dst: vec_all_eq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1507,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1510,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1511,1
    - Dst: vec_min
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1512,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1513,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1514,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1515,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1516,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1518,1
    - Dst: vec_any_ne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1520,1
    - Dst: loop_filter_v_16_all
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1521,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1521,1
    - Dst: vec_any_ne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1522,1
    - Dst: loop_filter_v_8_all
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1523,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1523,1
    - Dst: loop_filter_v_4_all
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1525,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1525,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 7
    argNames:
    - dst
    - stride
    - vmask
    - (*l)
    - b4_stride
    - lut
    - w
    argTypes:
    - pixel*
    - ptrdiff_t
    - uint32_t*
    - uint8_t[]
    - ptrdiff_t
    - Av1FilterLUT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1450
    functionDepth: 2
    functionLinenumber: 1450
    functionLinenumberEnd: 1529
    functionName: LPF
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sr
    - vec_perm
    - vec_splat_u8
    - vec_xl
    - vec_splats
    - vec_all_eq
    - vec_cmpeq
    - vec_max
    - vec_splat
    - vec_cmpne
    - vec_splat_u32
    - vec_and
    - vec_sl
    - vec_any_ne
    - vec_add
    - loop_filter_v_4_all
    - loop_filter_v_16_all
    - vec_min
    - vec_sel
    - PXSTRIDE
    - loop_filter_v_8_all
    linkageType: ''
    returnType: void
    signature: "void LPF(v_sb_y)(pixel *dst, const ptrdiff_t stride,\n                 const
      uint32_t *const vmask,\n                 const uint8_t (*l)[4], ptrdiff_t b4_stride,\n
      \                const Av1FilterLUT *lut, const int w)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1537,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1538,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1541,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1542,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1543,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1544,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1545,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1546,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1547,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1548,1
    - Dst: vec_sl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1560,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1561,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1565,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1566,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1567,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1568,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1570,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1571,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1573,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1574,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1576,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1577,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1579,1
    - Dst: vec_sel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1581,1
    - Dst: vec_perm
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1583,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1585,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1586,1
    - Dst: vec_cmpne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1588,1
    - Dst: vec_all_eq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1590,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1593,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1594,1
    - Dst: vec_min
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1595,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1596,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1597,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1598,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1599,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1601,1
    - Dst: vec_any_ne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1603,1
    - Dst: loop_filter_h_6_all
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1604,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1604,1
    - Dst: loop_filter_h_4_all
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1607,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1607,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 7
    argNames:
    - dst
    - stride
    - vmask
    - (*l)
    - b4_stride
    - lut
    - h
    argTypes:
    - pixel*
    - ptrdiff_t
    - uint32_t*
    - uint8_t[]
    - ptrdiff_t
    - Av1FilterLUT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1531
    functionDepth: 2
    functionLinenumber: 1531
    functionLinenumberEnd: 1613
    functionName: LPF
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sr
    - vec_perm
    - vec_splat_u8
    - vec_xl
    - vec_splats
    - vec_all_eq
    - vec_cmpeq
    - loop_filter_h_4_all
    - loop_filter_h_6_all
    - vec_max
    - vec_splat
    - vec_cmpne
    - vec_splat_u32
    - vec_and
    - vec_sl
    - vec_any_ne
    - vec_add
    - vec_min
    - vec_sel
    - vec_mergel
    - PXSTRIDE
    - vec_mergeh
    linkageType: ''
    returnType: void
    signature: "void LPF(h_sb_uv)(pixel *dst, const ptrdiff_t stride,\n                  const
      uint32_t *const vmask,\n                  const uint8_t (*l)[4], ptrdiff_t b4_stride,\n
      \                 const Av1FilterLUT *lut, const int h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1622,1
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1623,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1625,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1626,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1627,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1629,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1630,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1631,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1632,1
    - Dst: vec_splat_u8
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1633,1
    - Dst: vec_sl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1646,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1652,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1653,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1655,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1656,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1658,1
    - Dst: vec_sel
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1660,1
    - Dst: vec_perm
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1662,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1664,1
    - Dst: vec_cmpeq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1665,1
    - Dst: vec_cmpne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1667,1
    - Dst: vec_all_eq
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1669,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1672,1
    - Dst: vec_sr
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1673,1
    - Dst: vec_min
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1674,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1675,1
    - Dst: vec_max
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1676,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1677,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1678,1
    - Dst: vec_and
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1680,1
    - Dst: vec_any_ne
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1682,1
    - Dst: loop_filter_v_6_all
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1683,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1683,1
    - Dst: loop_filter_v_4_all
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1685,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/loopfilter_tmpl.c:1685,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 7
    argNames:
    - dst
    - stride
    - vmask
    - (*l)
    - b4_stride
    - lut
    - w
    argTypes:
    - pixel*
    - ptrdiff_t
    - uint32_t*
    - uint8_t[]
    - ptrdiff_t
    - Av1FilterLUT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1615
    functionDepth: 2
    functionLinenumber: 1615
    functionLinenumberEnd: 1688
    functionName: LPF
    functionSourceFile: /src/dav1d/src/ppc/loopfilter_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sr
    - vec_perm
    - vec_splat_u8
    - vec_xl
    - vec_splats
    - vec_all_eq
    - vec_cmpeq
    - vec_max
    - vec_splat
    - vec_cmpne
    - vec_splat_u32
    - vec_and
    - vec_sl
    - vec_any_ne
    - vec_add
    - loop_filter_v_4_all
    - vec_min
    - vec_sel
    - loop_filter_v_6_all
    - PXSTRIDE
    linkageType: ''
    returnType: void
    signature: "void LPF(v_sb_uv)(pixel *dst, const ptrdiff_t stride,\n                  const
      uint32_t *const vmask,\n                  const uint8_t (*l)[4], ptrdiff_t b4_stride,\n
      \                 const Av1FilterLUT *lut, const int w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - src
    - ','
    - stride
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: LOAD_4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_4(src, stride, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - src
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: LOAD_DECLARE_2_I16
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DECLARE_2_I16(src, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - sa
    - ','
    - sb
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: UNPACK_DECLARE_4_I16_I32
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_DECLARE_4_I16_I32(sa, sb, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - coeff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: LOAD_COEFF_4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_COEFF_4(coeff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - coeff
    - ','
    - scale
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: LOAD_SCALE_COEFF_4x8
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SCALE_COEFF_4x8(coeff, scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - coeff
    - ','
    - scale
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: LOAD_SCALE_COEFF_8x4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SCALE_COEFF_8x4(coeff, scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - coeff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: LOAD_COEFF_8x8
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_COEFF_8x8(coeff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - coeff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: LOAD_COEFF_4x16
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_COEFF_4x16(coeff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - src
    - ','
    - stride
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: LOAD_DECLARE_4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DECLARE_4(src, stride, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - l
    - ','
    - dst
    - ','
    - stride
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: STORE_LEN
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_LEN(l, dst, stride, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - dst
    - ','
    - stride
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: STORE_4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_4(dst, stride, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - dst
    - ','
    - stride
    - ','
    - ab
    - ','
    - cd
    - ','
    - ef
    - ','
    - gh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: STORE_8
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_8(dst, stride, ab, cd, ef, gh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - dst
    - ','
    - stride
    - ','
    - l0
    - ','
    - l1
    - ','
    - l2
    - ','
    - l3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: STORE_16
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_16(dst, stride, l0, l1, l2, l3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 160
    functionName: APPLY_COEFF_4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY_COEFF_4(a, b, c, d, c01, c23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ab
    - ','
    - cd
    - ','
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 176
    functionName: APPLY_COEFF_8x4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY_COEFF_8x4(ab, cd, c01, c23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 206
    functionName: APPLY_COEFF_16x4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "APPLY_COEFF_16x4(a, b, c, d, \\\n                         c00c01,
      c02c03, c04c05, c06c07, \\\n                         c08c09, c10c11, c12c13,
      c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 246
    functionName: IDCT_4_INNER
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDCT_4_INNER(c0, c1, c2, c3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c03
    - ','
    - c12
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: dct4_for_dct8
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dct4_for_dct8(c0, c1, c2, c3, c03, c12)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: dct_4_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dct_4_in(c0, c1, c2, c3, c01, c23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: dct_4_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dct_4_out(c0, c1, c2, c3, c01, c23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: IDENTITY_4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDENTITY_4(c01, c23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: identity_4_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: identity_4_in(c0, c1, c2, c3, c01, c23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: identity_4_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: identity_4_out(c0, c1, c2, c3, c01, c23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - oc0
    - ','
    - oc1
    - ','
    - oc2
    - ','
    - oc3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 338
    functionName: ADST_INNER_4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADST_INNER_4(c0, c1, c2, c3, oc0, oc1, oc2, oc3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: adst_4_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: adst_4_in(c0, c1, c2, c3, c01, c23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: flipadst_4_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flipadst_4_in(c0, c1, c2, c3, c01, c23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: adst_4_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: adst_4_out(c0, c1, c2, c3, c01, c23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c01
    - ','
    - c23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: flipadst_4_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flipadst_4_out(c0, c1, c2, c3, c01, c23)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/itx_tmpl.c:373,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:376,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:378,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:379,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:380,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:381,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:383,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:384,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:385,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:386,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:388,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:389,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:390,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:391,1
    - Dst: STORE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 6
    argNames:
    - dst
    - stride
    - coeff
    - n
    - is_rect2
    - shift
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - int16_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 395
    functionName: dc_only_4xN
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_adds
    - u8h_to_i16
    - STORE_4
    - vec_packsu
    - LOAD_DECLARE_4
    - vec_splats
    linkageType: ''
    returnType: void
    signature: void dc_only_4xN(uint8_t *dst, const ptrdiff_t stride, int16_t *const
      coeff, int n, int is_rect2, int shift)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/itx_tmpl.c:407,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:411,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:413,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:414,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:415,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:416,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:418,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:419,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:420,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:421,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:423,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:424,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:425,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:426,1
    - Dst: STORE_8
      Src: /src/dav1d/src/ppc/itx_tmpl.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 6
    argNames:
    - dst
    - stride
    - coeff
    - n
    - is_rect2
    - shift
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - int16_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 430
    functionName: dc_only_8xN
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - STORE_8
    - vec_adds
    - u8h_to_i16
    - vec_packsu
    - LOAD_DECLARE_4
    - vec_splats
    linkageType: ''
    returnType: void
    signature: void dc_only_8xN(uint8_t *dst, const ptrdiff_t stride, int16_t *const
      coeff, int n, int is_rect2, int shift)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/itx_tmpl.c:442,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:446,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:448,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:449,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:450,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:451,1
    - Dst: u8l_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:452,1
    - Dst: u8l_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:453,1
    - Dst: u8l_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:454,1
    - Dst: u8l_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:455,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:457,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:458,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:459,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:460,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:461,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:462,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:463,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:464,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:466,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:467,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:468,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:469,1
    - Dst: STORE_16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 6
    argNames:
    - dst
    - stride
    - coeff
    - n
    - is_rect2
    - shift
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - int16_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 473
    functionName: dc_only_16xN
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - u8l_to_i16
    - u8h_to_i16
    - STORE_16
    - vec_packsu
    - vec_adds
    - LOAD_DECLARE_4
    - vec_splats
    linkageType: ''
    returnType: void
    signature: void dc_only_16xN(uint8_t *dst, const ptrdiff_t stride, int16_t *const
      coeff, int n, int is_rect2, int shift)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ppc/itx_tmpl.c:478,1
    - Dst: dc_only_4xN
      Src: /src/dav1d/src/ppc/itx_tmpl.c:481,1
    - Dst: LOAD_COEFF_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:484,1
    - Dst: dct_4_in
      Src: /src/dav1d/src/ppc/itx_tmpl.c:486,1
    - Dst: TRANSPOSE4_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:488,1
    - Dst: memset
      Src: /src/dav1d/src/ppc/itx_tmpl.c:490,1
    - Dst: dct_4_out
      Src: /src/dav1d/src/ppc/itx_tmpl.c:492,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:494,1
    - Dst: APPLY_COEFF_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:496,1
    - Dst: STORE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - dst
    - stride
    - coeff
    - eob
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - int16_t*
    - int
    assertStmts:
    - condition: (eob >= 0)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/dav1d/src/ppc/itx_tmpl.c
    constantsTouched: []
    func_position:
      end: 499
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 499
    functionName: dav1d_inv_txfm_add_dct_dct_4x4_8bpc_pwr9
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - dct_4_in
    - TRANSPOSE4_I32
    - assert
    - memset
    - dc_only_4xN
    - LOAD_COEFF_4
    - STORE_4
    - APPLY_COEFF_4
    - dct_4_out
    - LOAD_DECLARE_4
    linkageType: ''
    returnType: void
    signature: "void dav1d_inv_txfm_add_dct_dct_4x4_8bpc_pwr9(uint8_t *dst, const
      ptrdiff_t stride,\n                                              int16_t *const
      coeff, const int eob)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_COEFF_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:504,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:506,1
    - Dst: vec_sra
      Src: /src/dav1d/src/ppc/itx_tmpl.c:508,1
    - Dst: vec_sra
      Src: /src/dav1d/src/ppc/itx_tmpl.c:509,1
    - Dst: vec_sra
      Src: /src/dav1d/src/ppc/itx_tmpl.c:510,1
    - Dst: vec_sra
      Src: /src/dav1d/src/ppc/itx_tmpl.c:511,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/itx_tmpl.c:513,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/itx_tmpl.c:514,1
    - Dst: vec_sra
      Src: /src/dav1d/src/ppc/itx_tmpl.c:515,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/itx_tmpl.c:515,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:515,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/itx_tmpl.c:516,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/itx_tmpl.c:517,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/itx_tmpl.c:518,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/itx_tmpl.c:521,1
    - Dst: memset
      Src: /src/dav1d/src/ppc/itx_tmpl.c:523,1
    - Dst: TRANSPOSE4_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:525,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/itx_tmpl.c:527,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/itx_tmpl.c:528,1
    - Dst: vec_sra
      Src: /src/dav1d/src/ppc/itx_tmpl.c:529,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/itx_tmpl.c:529,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:529,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/itx_tmpl.c:530,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/itx_tmpl.c:531,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/itx_tmpl.c:532,1
    - Dst: vec_add
      Src: /src/dav1d/src/ppc/itx_tmpl.c:535,1
    - Dst: vec_packs
      Src: /src/dav1d/src/ppc/itx_tmpl.c:537,1
    - Dst: vec_packs
      Src: /src/dav1d/src/ppc/itx_tmpl.c:538,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:540,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/itx_tmpl.c:542,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/itx_tmpl.c:543,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:545,1
    - Dst: u8h_to_i16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:546,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:548,1
    - Dst: vec_adds
      Src: /src/dav1d/src/ppc/itx_tmpl.c:549,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:551,1
    - Dst: vec_packsu
      Src: /src/dav1d/src/ppc/itx_tmpl.c:552,1
    - Dst: vec_mergeo
      Src: /src/dav1d/src/ppc/itx_tmpl.c:554,1
    - Dst: vec_mergeo
      Src: /src/dav1d/src/ppc/itx_tmpl.c:555,1
    - Dst: STORE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 4
    argNames:
    - dst
    - stride
    - coeff
    - eob
    argTypes:
    - pixel*
    - ptrdiff_t
    - coef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 558
    functionName: dav1d_inv_txfm_add_wht_wht_4x4_8bpc_pwr9
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sra
    - vec_add
    - vec_sub
    - vec_packs
    - TRANSPOSE4_I32
    - memset
    - vec_mergeo
    - u8h_to_i16
    - LOAD_COEFF_4
    - STORE_4
    - vec_packsu
    - vec_adds
    - vec_mergeh
    - LOAD_DECLARE_4
    - vec_splat_u32
    linkageType: ''
    returnType: void
    signature: "void dav1d_inv_txfm_add_wht_wht_4x4_8bpc_pwr9(pixel *dst, const ptrdiff_t
      stride,\n                                              coef *const coeff, const
      int eob)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type1
    - ','
    - type2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 573
    functionName: inv_txfm_fn4x4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn4x4(type1, type2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c03
    - ','
    - c12
    - ','
    - c74
    - ','
    - c65
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 652
    functionName: IDCT_8_INNER
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDCT_8_INNER(c0, c1, c2, c3, c4, c5, c6, c7, c03, c12, c74, c65)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - t0
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 657
    functionName: UNPACK_4_I16_I32
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_4_I16_I32(t0, t1, t2, t3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hi
    - ','
    - lo
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 662
    functionName: UNPACK_PAIR_I16_I32
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_PAIR_I16_I32(hi, lo, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 670
    functionName: dct_8_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dct_8_in(c0, c1, c2, c3, c4, c5, c6, c7, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c01
    - ','
    - c23
    - ','
    - c45
    - ','
    - c67
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 680
    functionName: dct_8_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dct_8_out(c0, c1, c2, c3, c4, c5, c6, c7, c01, c23, c45, c67)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c4h
    - ','
    - c5h
    - ','
    - c6h
    - ','
    - c7h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - ','
    - c4l
    - ','
    - c5l
    - ','
    - c6l
    - ','
    - c7l
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 688
    functionName: dct_8x2_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "dct_8x2_in(c0h, c1h, c2h, c3h, c4h, c5h, c6h, c7h, \\\n                   c0l,
      c1l, c2l, c3l, c4l, c5l, c6l, c7l, \\\n                   c0, c1, c2, c3, c4,
      c5, c6, c7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c4h
    - ','
    - c5h
    - ','
    - c6h
    - ','
    - c7h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - ','
    - c4l
    - ','
    - c5l
    - ','
    - c6l
    - ','
    - c7l
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 710
    functionName: dct_8x2_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "dct_8x2_out(c0h, c1h, c2h, c3h, c4h, c5h, c6h, c7h, \\\n                    c0l,
      c1l, c2l, c3l, c4l, c5l, c6l, c7l, \\\n                    c0, c1, c2, c3, c4,
      c5, c6, c7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c01
    - ','
    - c23
    - ','
    - c45
    - ','
    - c67
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 718
    functionName: IDENTITY_8
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDENTITY_8(c01, c23, c45, c67)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c01
    - ','
    - c23
    - ','
    - c45
    - ','
    - c67
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 727
    functionName: identity_8_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: identity_8_in(c0, c1, c2, c3, c4, c5, c6, c7, c01, c23, c45, c67)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c01
    - ','
    - c23
    - ','
    - c45
    - ','
    - c67
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 734
    functionName: identity_8_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: identity_8_out(c0, c1, c2, c3, c4, c5, c6, c7, c01, c23, c45, c67)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c4h
    - ','
    - c5h
    - ','
    - c6h
    - ','
    - c7h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - ','
    - c4l
    - ','
    - c5l
    - ','
    - c6l
    - ','
    - c7l
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 750
    functionName: identity_8x2_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "identity_8x2_in(c0h, c1h, c2h, c3h, c4h, c5h, c6h, c7h, \\\n                        c0l,
      c1l, c2l, c3l, c4l, c5l, c6l, c7l, \\\n                        c0, c1, c2, c3,
      c4, c5, c6, c7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 760
    functionName: PACK_4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "PACK_4(c0, c1, c2, c3, \\\n               c0h, c1h, c2h, c3h, \\\n
      \              c0l, c1l, c2l, c3l)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 766
    functionName: DECLARE_PACK_4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "DECLARE_PACK_4(c0, c1, c2, c3, \\\n                       c0h, c1h,
      c2h, c3h, \\\n                       c0l, c1l, c2l, c3l)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c4h
    - ','
    - c5h
    - ','
    - c6h
    - ','
    - c7h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - ','
    - c4l
    - ','
    - c5l
    - ','
    - c6l
    - ','
    - c7l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 780
    functionName: PACK_8
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "PACK_8(c0, c1, c2, c3, c4, c5, c6, c7, \\\n               c0h, c1h,
      c2h, c3h, c4h, c5h, c6h, c7h, \\\n               c0l, c1l, c2l, c3l, c4l, c5l,
      c6l, c7l)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c4h
    - ','
    - c5h
    - ','
    - c6h
    - ','
    - c7h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - ','
    - c4l
    - ','
    - c5l
    - ','
    - c6l
    - ','
    - c7l
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 791
    functionName: identity_8x2_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "identity_8x2_out(c0h, c1h, c2h, c3h, c4h, c5h, c6h, c7h, \\\n                         c0l,
      c1l, c2l, c3l, c4l, c5l, c6l, c7l, \\\n                         c0, c1, c2,
      c3, c4, c5, c6, c7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 794
    functionName: DECLARE_SPLAT_I32
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_SPLAT_I32(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ca
    - ','
    - cb
    - ','
    - va
    - ','
    - vb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 800
    functionName: DECLARE_MUL_PAIR_I32
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_MUL_PAIR_I32(ca, cb, va, vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r0
    - ','
    - r1
    - ','
    - ca
    - ','
    - cb
    - ','
    - va
    - ','
    - vb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 804
    functionName: ADD_SUB_PAIR
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_SUB_PAIR(r0, r1, ca, cb, va, vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r0
    - ','
    - r1
    - ','
    - ca
    - ','
    - cb
    - ','
    - va
    - ','
    - vb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: DECLARE_ADD_SUB_PAIR
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ADD_SUB_PAIR(r0, r1, ca, cb, va, vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - rnd
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 818
    functionName: SCALE_ROUND_4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCALE_ROUND_4(a, b, c, d, rnd, shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 33
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - o0
    - ','
    - o1
    - ','
    - o2
    - ','
    - o3
    - ','
    - o4
    - ','
    - o5
    - ','
    - o6
    - ','
    - o7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 917
    functionName: ADST_INNER_8
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "ADST_INNER_8(c0, c1, c2, c3, c4, c5, c6, c7, \\\n                     o0,
      o1, o2, o3, o4, o5, o6, o7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c01
    - ','
    - c23
    - ','
    - c45
    - ','
    - c67
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 931
    functionName: adst_8_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: adst_8_in(c0, c1, c2, c3, c4, c5, c6, c7, c01, c23, c45, c67)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c01
    - ','
    - c23
    - ','
    - c45
    - ','
    - c67
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 941
    functionName: adst_8_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: adst_8_out(c0, c1, c2, c3, c4, c5, c6, c7, c01, c23, c45, c67)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c4h
    - ','
    - c5h
    - ','
    - c6h
    - ','
    - c7h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - ','
    - c4l
    - ','
    - c5l
    - ','
    - c6l
    - ','
    - c7l
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 951
    functionName: adst_8x2_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "adst_8x2_in(c0h, c1h, c2h, c3h, c4h, c5h, c6h, c7h, \\\n                    c0l,
      c1l, c2l, c3l, c4l, c5l, c6l, c7l, \\\n                    c0, c1, c2, c3, c4,
      c5, c6, c7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c4h
    - ','
    - c5h
    - ','
    - c6h
    - ','
    - c7h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - ','
    - c4l
    - ','
    - c5l
    - ','
    - c6l
    - ','
    - c7l
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 964
    functionName: adst_8x2_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "adst_8x2_out(c0h, c1h, c2h, c3h, c4h, c5h, c6h, c7h, \\\n                    c0l,
      c1l, c2l, c3l, c4l, c5l, c6l, c7l, \\\n                    c0, c1, c2, c3, c4,
      c5, c6, c7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c01
    - ','
    - c23
    - ','
    - c45
    - ','
    - c67
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 978
    functionName: flipadst_8_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flipadst_8_in(c0, c1, c2, c3, c4, c5, c6, c7, c01, c23, c45, c67)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - ','
    - c01
    - ','
    - c23
    - ','
    - c45
    - ','
    - c67
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 988
    functionName: flipadst_8_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flipadst_8_out(c0, c1, c2, c3, c4, c5, c6, c7, c01, c23, c45, c67)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c4h
    - ','
    - c5h
    - ','
    - c6h
    - ','
    - c7h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - ','
    - c4l
    - ','
    - c5l
    - ','
    - c6l
    - ','
    - c7l
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 998
    functionName: flipadst_8x2_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "flipadst_8x2_in(c0h, c1h, c2h, c3h, c4h, c5h, c6h, c7h, \\\n                        c0l,
      c1l, c2l, c3l, c4l, c5l, c6l, c7l, \\\n                        c0, c1, c2, c3,
      c4, c5, c6, c7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c0h
    - ','
    - c1h
    - ','
    - c2h
    - ','
    - c3h
    - ','
    - c4h
    - ','
    - c5h
    - ','
    - c6h
    - ','
    - c7h
    - ','
    - c0l
    - ','
    - c1l
    - ','
    - c2l
    - ','
    - c3l
    - ','
    - c4l
    - ','
    - c5l
    - ','
    - c6l
    - ','
    - c7l
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1011
    functionName: flipadst_8x2_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "flipadst_8x2_out(c0h, c1h, c2h, c3h, c4h, c5h, c6h, c7h, \\\n                         c0l,
      c1l, c2l, c3l, c4l, c5l, c6l, c7l, \\\n                         c0, c1, c2,
      c3, c4, c5, c6, c7)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1015,1
    - Dst: dc_only_4xN
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1018,1
    - Dst: LOAD_SCALE_COEFF_4x8
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1021,1
    - Dst: dct_4_in
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1023,1
    - Dst: dct_4_in
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1024,1
    - Dst: memset
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1027,1
    - Dst: TRANSPOSE4_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1029,1
    - Dst: TRANSPOSE4_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1030,1
    - Dst: dct_8_out
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1032,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1034,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1035,1
    - Dst: APPLY_COEFF_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1037,1
    - Dst: APPLY_COEFF_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1038,1
    - Dst: STORE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1040,1
    - Dst: STORE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 4
    argNames:
    - dst
    - stride
    - coeff
    - eob
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1042
    functionName: dav1d_inv_txfm_add_dct_dct_4x8_8bpc_pwr9
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - dct_4_in
    - TRANSPOSE4_I32
    - dct_8_out
    - memset
    - LOAD_SCALE_COEFF_4x8
    - dc_only_4xN
    - STORE_4
    - APPLY_COEFF_4
    - LOAD_DECLARE_4
    - vec_splats
    linkageType: ''
    returnType: void
    signature: "void dav1d_inv_txfm_add_dct_dct_4x8_8bpc_pwr9(uint8_t *dst, const
      ptrdiff_t stride,\n                                              int16_t *const
      coeff, const int eob)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type1
    - ','
    - type2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1064
    functionName: inv_txfm_fn4x8
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn4x8(type1, type2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1085,1
    - Dst: dc_only_8xN
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1088,1
    - Dst: LOAD_SCALE_COEFF_8x4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1091,1
    - Dst: dct_8_in
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1093,1
    - Dst: memset
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1095,1
    - Dst: TRANSPOSE4_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1097,1
    - Dst: TRANSPOSE4_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1098,1
    - Dst: dct_4_out
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1100,1
    - Dst: dct_4_out
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1101,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1103,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1105,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1106,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1107,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1108,1
    - Dst: APPLY_COEFF_8x4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1110,1
    - Dst: APPLY_COEFF_8x4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1111,1
    - Dst: STORE_8
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - dst
    - stride
    - coeff
    - eob
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1114
    functionName: dav1d_inv_txfm_add_dct_dct_8x4_8bpc_pwr9
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - dc_only_8xN
    - APPLY_COEFF_8x4
    - TRANSPOSE4_I32
    - STORE_8
    - dct_8_in
    - memset
    - vec_mergel
    - dct_4_out
    - vec_mergeh
    - LOAD_SCALE_COEFF_8x4
    - LOAD_DECLARE_4
    - vec_splats
    linkageType: ''
    returnType: void
    signature: "void dav1d_inv_txfm_add_dct_dct_8x4_8bpc_pwr9(uint8_t *dst, const
      ptrdiff_t stride,\n                                              int16_t *const
      coeff, const int eob)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type1
    - ','
    - type2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1138
    functionName: inv_txfm_fn8x4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn8x4(type1, type2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dc_only_8xN
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1158,1
    - Dst: LOAD_COEFF_8x8
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1161,1
    - Dst: dct_8x2_in
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1163,1
    - Dst: memset
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1167,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1169,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1169,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1169,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1170,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1170,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1170,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1171,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1171,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1171,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1172,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1172,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1172,1
    - Dst: TRANSPOSE8_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1174,1
    - Dst: dct_8x2_out
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1177,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1181,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1182,1
    - Dst: APPLY_COEFF_8x4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1184,1
    - Dst: APPLY_COEFF_8x4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1185,1
    - Dst: APPLY_COEFF_8x4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1186,1
    - Dst: APPLY_COEFF_8x4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1187,1
    - Dst: STORE_8
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1189,1
    - Dst: STORE_8
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 4
    argNames:
    - dst
    - stride
    - coeff
    - eob
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1154
    functionDepth: 2
    functionLinenumber: 1154
    functionLinenumberEnd: 1191
    functionName: dav1d_inv_txfm_add_dct_dct_8x8_8bpc_pwr9
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - dc_only_8xN
    - SCALE_ROUND_4
    - APPLY_COEFF_8x4
    - vec_splat_s32
    - TRANSPOSE8_I32
    - STORE_8
    - memset
    - LOAD_COEFF_8x8
    - dct_8x2_out
    - dct_8x2_in
    - LOAD_DECLARE_4
    - vec_splat_u32
    linkageType: ''
    returnType: void
    signature: "void dav1d_inv_txfm_add_dct_dct_8x8_8bpc_pwr9(uint8_t *dst, const
      ptrdiff_t stride,\n                                              int16_t *const
      coeff, const int eob)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type1
    - ','
    - type2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1220
    functionName: inv_txfm_fn8x8
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn8x8(type1, type2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type2
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1253
    functionName: inv_txfm_fn8x8_identity
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn8x8_identity(type2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - ab
    - ','
    - cd
    - ','
    - ef
    - ','
    - gh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1258
    functionDepth: 0
    functionLinenumber: 1258
    functionLinenumberEnd: 1270
    functionName: CLIP16_I32_8
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "CLIP16_I32_8(a, b, c, d, e, f, g, h, \\\n                     ab,
      cd, ef, gh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1277
    functionName: MUL_4_INPLACE
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL_4_INPLACE(a, b, c, d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1282
    functionName: IDENTITY_16_V
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDENTITY_16_V(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1296
    functionName: IDENTITY_16_INNER
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "IDENTITY_16_INNER(c00c01, c02c03, c04c05, c06c07, \\\n                          c08c09,
      c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1310
    functionName: IDENTITY_16_4_I32
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDENTITY_16_4_I32(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1324
    functionName: identity_16_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "identity_16_in(c00, c01, c02, c03, c04, c05, c06, c07, \\\n                       c08,
      c09, c10, c11, c12, c13, c14, c15, \\\n                       c00c01, c02c03,
      c04c05, c06c07, \\\n                       c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1336
    functionName: identity_16_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "identity_16_out(c00, c01, c02, c03, c04, c05, c06, c07, \\\n                        c08,
      c09, c10, c11, c12, c13, c14, c15, \\\n                        c00c01, c02c03,
      c04c05, c06c07, \\\n                        c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c03
    - ','
    - c01c02
    - ','
    - c07c04
    - ','
    - c06c05
    - ','
    - c08c11
    - ','
    - c09c10
    - ','
    - c14c13
    - ','
    - c15c12
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1417
    functionName: IDCT_16_INNER
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "IDCT_16_INNER(c00, c01, c02, c03, c04, c05, c06, c07, \\\n                      c08,
      c09, c10, c11, c12, c13, c14, c15, \\\n                      c00c03, c01c02,
      c07c04, c06c05, \\\n                      c08c11, c09c10, c14c13, c15c12)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1433
    functionName: dct_16_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "dct_16_out(c00, c01, c02, c03, c04, c05, c06, c07, \\\n                   c08,
      c09, c10, c11, c12, c13, c14, c15, \\\n                   c00c01, c02c03, c04c05,
      c06c07, c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c03
    - ','
    - c01c02
    - ','
    - c07c04
    - ','
    - c06c05
    - ','
    - c08c11
    - ','
    - c09c10
    - ','
    - c14c13
    - ','
    - c15c12
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1448
    functionName: dct_16_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "dct_16_in(c00, c01, c02, c03, c04, c05, c06, c07, \\\n                  c08,
      c09, c10, c11, c12, c13, c14, c15, \\\n                  c00c03, c01c02, c07c04,
      c06c05, c08c11, c09c10, c14c13, c15c12)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - cA0
    - ','
    - cA1
    - ','
    - cA2
    - ','
    - cA3
    - ','
    - cB0
    - ','
    - cB1
    - ','
    - cB2
    - ','
    - cB3
    - ','
    - cC0
    - ','
    - cC1
    - ','
    - cC2
    - ','
    - cC3
    - ','
    - cD0
    - ','
    - cD1
    - ','
    - cD2
    - ','
    - cD3
    - ','
    - a0b0
    - ','
    - c0d0
    - ','
    - a1b1
    - ','
    - c1d1
    - ','
    - a2b2
    - ','
    - c2d2
    - ','
    - a3b3
    - ','
    - c3d3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1456
    functionName: dct_4x4_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "dct_4x4_in(cA0, cA1, cA2, cA3, cB0, cB1, cB2, cB3, \\\n                   cC0,
      cC1, cC2, cC3, cD0, cD1, cD2, cD3, \\\n                   a0b0, c0d0, a1b1,
      c1d1, a2b2, c2d2, a3b3, c3d3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1470
    functionName: PACK_4x4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "PACK_4x4(c00, c01, c02, c03, \\\n                 c04, c05, c06, c07,
      \\\n                 c08, c09, c10, c11, \\\n                 c12, c13, c14,
      c15, \\\n                 c00c01, c02c03, c04c05, c06c07, \\\n                 c08c09,
      c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1492
    functionName: dct_4x4_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "dct_4x4_out(c00, c01, c02, c03, \\\n                    c04, c05,
      c06, c07, \\\n                    c08, c09, c10, c11, \\\n                    c12,
      c13, c14, c15, \\\n                    c00c01, c02c03, c04c05, c06c07, \\\n
      \                   c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1500
    functionName: IDENTITY_4_I32
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDENTITY_4_I32(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - cA0
    - ','
    - cA1
    - ','
    - cA2
    - ','
    - cA3
    - ','
    - cB0
    - ','
    - cB1
    - ','
    - cB2
    - ','
    - cB3
    - ','
    - cC0
    - ','
    - cC1
    - ','
    - cC2
    - ','
    - cC3
    - ','
    - cD0
    - ','
    - cD1
    - ','
    - cD2
    - ','
    - cD3
    - ','
    - a0b0
    - ','
    - c0d0
    - ','
    - a1b1
    - ','
    - c1d1
    - ','
    - a2b2
    - ','
    - c2d2
    - ','
    - a3b3
    - ','
    - c3d3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1510
    functionName: identity_4x4_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "identity_4x4_in(cA0, cA1, cA2, cA3, cB0, cB1, cB2, cB3, \\\n                       cC0,
      cC1, cC2, cC3, cD0, cD1, cD2, cD3, \\\n                       a0b0, c0d0, a1b1,
      c1d1, a2b2, c2d2, a3b3, c3d3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1529
    functionName: identity_4x4_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "identity_4x4_out(c00, c01, c02, c03, \\\n                         c04,
      c05, c06, c07, \\\n                         c08, c09, c10, c11, \\\n                         c12,
      c13, c14, c15, \\\n                         c00c01, c02c03, c04c05, c06c07,
      \\\n                         c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - cA0
    - ','
    - cA1
    - ','
    - cA2
    - ','
    - cA3
    - ','
    - cB0
    - ','
    - cB1
    - ','
    - cB2
    - ','
    - cB3
    - ','
    - cC0
    - ','
    - cC1
    - ','
    - cC2
    - ','
    - cC3
    - ','
    - cD0
    - ','
    - cD1
    - ','
    - cD2
    - ','
    - cD3
    - ','
    - a0b0
    - ','
    - c0d0
    - ','
    - a1b1
    - ','
    - c1d1
    - ','
    - a2b2
    - ','
    - c2d2
    - ','
    - a3b3
    - ','
    - c3d3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1537
    functionName: adst_4x4_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "adst_4x4_in(cA0, cA1, cA2, cA3, cB0, cB1, cB2, cB3, \\\n                    cC0,
      cC1, cC2, cC3, cD0, cD1, cD2, cD3, \\\n                    a0b0, c0d0, a1b1,
      c1d1, a2b2, c2d2, a3b3, c3d3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1557
    functionName: adst_4x4_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "adst_4x4_out(c00, c01, c02, c03, \\\n                     c04, c05,
      c06, c07, \\\n                     c08, c09, c10, c11, \\\n                     c12,
      c13, c14, c15, \\\n                     c00c01, c02c03, c04c05, c06c07, \\\n
      \                    c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - cA0
    - ','
    - cA1
    - ','
    - cA2
    - ','
    - cA3
    - ','
    - cB0
    - ','
    - cB1
    - ','
    - cB2
    - ','
    - cB3
    - ','
    - cC0
    - ','
    - cC1
    - ','
    - cC2
    - ','
    - cC3
    - ','
    - cD0
    - ','
    - cD1
    - ','
    - cD2
    - ','
    - cD3
    - ','
    - a0b0
    - ','
    - c0d0
    - ','
    - a1b1
    - ','
    - c1d1
    - ','
    - a2b2
    - ','
    - c2d2
    - ','
    - a3b3
    - ','
    - c3d3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1565
    functionName: flipadst_4x4_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "flipadst_4x4_in(cA0, cA1, cA2, cA3, cB0, cB1, cB2, cB3, \\\n                        cC0,
      cC1, cC2, cC3, cD0, cD1, cD2, cD3, \\\n                        a0b0, c0d0, a1b1,
      c1d1, a2b2, c2d2, a3b3, c3d3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1585
    functionName: flipadst_4x4_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "flipadst_4x4_out(c00, c01, c02, c03, \\\n                         c04,
      c05, c06, c07, \\\n                         c08, c09, c10, c11, \\\n                         c12,
      c13, c14, c15, \\\n                         c00c01, c02c03, c04c05, c06c07,
      \\\n                         c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 73
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - o00
    - ','
    - o01
    - ','
    - o02
    - ','
    - o03
    - ','
    - o04
    - ','
    - o05
    - ','
    - o06
    - ','
    - o07
    - ','
    - o08
    - ','
    - o09
    - ','
    - o10
    - ','
    - o11
    - ','
    - o12
    - ','
    - o13
    - ','
    - o14
    - ','
    - o15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1733
    functionName: ADST_INNER_16
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "ADST_INNER_16(c00, c01, c02, c03, c04, c05, c06, c07, \\\n                      c08,
      c09, c10, c11, c12, c13, c14, c15, \\\n                      o00, o01, o02,
      o03, o04, o05, o06, o07, \\\n                      o08, o09, o10, o11, o12,
      o13, o14, o15, \\\n                      c00c01, c02c03, c04c05, c06c07)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1741
    functionName: adst_16_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "adst_16_in(c00, c01, c02, c03, c04, c05, c06, c07, \\\n                   c08,
      c09, c10, c11, c12, c13, c14, c15, \\\n                   c00c01, c02c03, c04c05,
      c06c07, c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1742
    functionDepth: 0
    functionLinenumber: 1742
    functionLinenumberEnd: 1753
    functionName: adst_16_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "adst_16_out(c00, c01, c02, c03, c04, c05, c06, c07, \\\n                    c08,
      c09, c10, c11, c12, c13, c14, c15, \\\n                    c00c01, c02c03, c04c05,
      c06c07, c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1754
    functionDepth: 0
    functionLinenumber: 1754
    functionLinenumberEnd: 1762
    functionName: flipadst_16_in
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "flipadst_16_in(c00, c01, c02, c03, c04, c05, c06, c07, \\\n                       c08,
      c09, c10, c11, c12, c13, c14, c15, \\\n                       c00c01, c02c03,
      c04c05, c06c07, c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - c00
    - ','
    - c01
    - ','
    - c02
    - ','
    - c03
    - ','
    - c04
    - ','
    - c05
    - ','
    - c06
    - ','
    - c07
    - ','
    - c08
    - ','
    - c09
    - ','
    - c10
    - ','
    - c11
    - ','
    - c12
    - ','
    - c13
    - ','
    - c14
    - ','
    - c15
    - ','
    - c00c01
    - ','
    - c02c03
    - ','
    - c04c05
    - ','
    - c06c07
    - ','
    - c08c09
    - ','
    - c10c11
    - ','
    - c12c13
    - ','
    - c14c15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1763
    functionDepth: 0
    functionLinenumber: 1763
    functionLinenumberEnd: 1774
    functionName: flipadst_16_out
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "flipadst_16_out(c00, c01, c02, c03, c04, c05, c06, c07, \\\n                        c08,
      c09, c10, c11, c12, c13, c14, c15, \\\n                        c00c01, c02c03,
      c04c05, c06c07, c08c09, c10c11, c12c13, c14c15)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dc_only_4xN
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1781,1
    - Dst: LOAD_COEFF_4x16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1784,1
    - Dst: dct_4x4_in
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1786,1
    - Dst: memset
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1790,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1792,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1792,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1792,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1793,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1793,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1793,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1794,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1794,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1794,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1795,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1795,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1795,1
    - Dst: TRANSPOSE4x16_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1796,1
    - Dst: dct_16_out
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1799,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1803,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1804,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1805,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1806,1
    - Dst: APPLY_COEFF_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1808,1
    - Dst: APPLY_COEFF_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1809,1
    - Dst: APPLY_COEFF_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1810,1
    - Dst: APPLY_COEFF_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1811,1
    - Dst: STORE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1813,1
    - Dst: STORE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1814,1
    - Dst: STORE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1815,1
    - Dst: STORE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 4
    argNames:
    - dst
    - stride
    - coeff
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1776
    functionDepth: 2
    functionLinenumber: 1776
    functionLinenumberEnd: 1817
    functionName: dav1d_inv_txfm_add_dct_dct_4x16_8bpc_pwr9
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - SCALE_ROUND_4
    - dct_4x4_in
    - vec_splat_s32
    - TRANSPOSE4x16_I32
    - memset
    - LOAD_COEFF_4x16
    - dc_only_4xN
    - dct_16_out
    - APPLY_COEFF_4
    - STORE_4
    - LOAD_DECLARE_4
    - vec_splat_u32
    linkageType: ''
    returnType: void
    signature: "void dav1d_inv_txfm_add_dct_dct_4x16_8bpc_pwr9(uint8_t *dst, const
      ptrdiff_t stride,\n                                               int16_t *const
      coeff, const int eob\n                                               HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type1
    - ','
    - type2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1850
    functionName: inv_txfm_fn4x16
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn4x16(type1, type2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dc_only_16xN
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1871,1
    - Dst: LOAD_DECLARE_2_I16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1874,1
    - Dst: LOAD_DECLARE_2_I16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1875,1
    - Dst: LOAD_DECLARE_2_I16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1876,1
    - Dst: LOAD_DECLARE_2_I16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1877,1
    - Dst: UNPACK_DECLARE_4_I16_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1878,1
    - Dst: UNPACK_DECLARE_4_I16_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1879,1
    - Dst: UNPACK_DECLARE_4_I16_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1880,1
    - Dst: UNPACK_DECLARE_4_I16_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1881,1
    - Dst: dct_16_in
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1883,1
    - Dst: memset
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1886,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1887,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1887,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1887,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1888,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1888,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1888,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1889,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1889,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1889,1
    - Dst: SCALE_ROUND_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1890,1
    - Dst: vec_splat_s32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1890,1
    - Dst: vec_splat_u32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1890,1
    - Dst: TRANSPOSE4_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1892,1
    - Dst: TRANSPOSE4_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1893,1
    - Dst: TRANSPOSE4_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1894,1
    - Dst: TRANSPOSE4_I32
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1895,1
    - Dst: dct_4x4_out
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1897,1
    - Dst: LOAD_DECLARE_4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1904,1
    - Dst: APPLY_COEFF_16x4
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1906,1
    - Dst: STORE_16
      Src: /src/dav1d/src/ppc/itx_tmpl.c:1910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 4
    argNames:
    - dst
    - stride
    - coeff
    - eob
    argTypes:
    - uint8_t*
    - ptrdiff_t
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1866
    functionDepth: 2
    functionLinenumber: 1866
    functionLinenumberEnd: 1911
    functionName: dav1d_inv_txfm_add_dct_dct_16x4_8bpc_pwr9
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached:
    - SCALE_ROUND_4
    - vec_splat_s32
    - dct_16_in
    - UNPACK_DECLARE_4_I16_I32
    - TRANSPOSE4_I32
    - dct_4x4_out
    - memset
    - dc_only_16xN
    - LOAD_DECLARE_2_I16
    - APPLY_COEFF_16x4
    - STORE_16
    - LOAD_DECLARE_4
    - vec_splat_u32
    linkageType: ''
    returnType: void
    signature: "void dav1d_inv_txfm_add_dct_dct_16x4_8bpc_pwr9(uint8_t *dst, const
      ptrdiff_t stride,\n                                               int16_t *const
      coeff, const int eob)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type1
    - ','
    - type2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1913
    functionDepth: 0
    functionLinenumber: 1913
    functionLinenumberEnd: 1949
    functionName: inv_txfm_fn16x4
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn16x4(type1, type2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type2
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1963
    functionDepth: 0
    functionLinenumber: 1963
    functionLinenumberEnd: 2001
    functionName: inv_txfm_fn16x4_identity
    functionSourceFile: /src/dav1d/src/ppc/itx_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inv_txfm_fn16x4_identity(type2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: blend_px
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blend_px(a, b, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - d0_u16
    - ','
    - d1_u16
    - ','
    - d2_u16
    - ','
    - d3_u16
    - ','
    - ab0
    - ','
    - ab1
    - ','
    - ab2
    - ','
    - ab3
    - ','
    - nm_m0
    - ','
    - nm_m1
    - ','
    - nm_m2
    - ','
    - nm_m3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 66
    functionName: BLEND_LINES4
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLEND_LINES4(d0_u16, d1_u16, d2_u16, d3_u16, ab0, ab1, ab2, ab3, nm_m0,
      nm_m1, nm_m2, nm_m3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - d0_u16
    - ','
    - d1_u16
    - ','
    - d2_u16
    - ','
    - ab0
    - ','
    - ab1
    - ','
    - ab2
    - ','
    - nm_m0
    - ','
    - nm_m1
    - ','
    - nm_2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: BLEND_LINES3
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLEND_LINES3(d0_u16, d1_u16, d2_u16, ab0, ab1, ab2, nm_m0, nm_m1, nm_2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - d0_u16
    - ','
    - d1_u16
    - ','
    - ab0
    - ','
    - ab1
    - ','
    - nm_m0
    - ','
    - nm_m1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 107
    functionName: BLEND_LINES2
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLEND_LINES2(d0_u16, d1_u16, ab0, ab1, nm_m0, nm_m1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/mc_tmpl.c:110,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:111,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:112,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:113,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:114,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:115,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:116,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:117,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:118,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:119,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:120,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:121,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:122,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:124,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:125,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:126,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:127,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:129,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:130,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:131,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:132,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:133,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:134,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:135,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:136,1
    - Dst: BLEND_LINES4
      Src: /src/dav1d/src/ppc/mc_tmpl.c:140,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:142,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:143,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:144,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:145,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:147,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:148,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:149,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 151
    functionName: blend4
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sub
    - BLEND_LINES4
    - vec_pack
    - vec_xst_len
    - vec_mergeh
    - vec_xl
    - vec_splats
    linkageType: ''
    returnType: void
    signature: void blend4(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/mc_tmpl.c:155,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:156,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:157,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:158,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:159,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:160,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:161,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:162,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:163,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:164,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:165,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:166,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:167,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:169,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:170,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:171,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:172,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:174,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:175,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:176,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:177,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:178,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:179,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:180,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:181,1
    - Dst: BLEND_LINES4
      Src: /src/dav1d/src/ppc/mc_tmpl.c:185,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:187,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:188,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:189,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:190,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:192,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:193,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:194,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 196
    functionName: blend8
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sub
    - BLEND_LINES4
    - vec_pack
    - vec_xst_len
    - vec_mergeh
    - vec_xl
    - vec_splats
    linkageType: ''
    returnType: void
    signature: void blend8(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/mc_tmpl.c:200,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:201,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:202,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:203,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:204,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:205,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:206,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:207,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:208,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:209,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:210,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:211,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:212,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:214,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:215,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:216,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:217,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:219,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:220,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:221,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:222,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:224,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:225,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:226,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:227,1
    - Dst: BLEND_LINES4
      Src: /src/dav1d/src/ppc/mc_tmpl.c:232,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:234,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:235,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:236,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:237,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:239,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:240,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:241,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:242,1
    - Dst: BLEND_LINES4
      Src: /src/dav1d/src/ppc/mc_tmpl.c:244,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:246,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:247,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:248,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:249,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/mc_tmpl.c:251,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/mc_tmpl.c:252,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/mc_tmpl.c:253,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/mc_tmpl.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - dst
    - tmp
    - mask
    - stride
    - mstride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 255
    functionName: blend16_lines
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sub
    - BLEND_LINES4
    - vec_pack
    - vec_mergel
    - vec_mergeh
    - vec_xl
    - vec_xst
    - vec_splats
    linkageType: ''
    returnType: void
    signature: void blend16_lines(uint8_t *dst, const uint8_t *tmp, const uint8_t
      *mask, int stride, int mstride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend16_lines
      Src: /src/dav1d/src/ppc/mc_tmpl.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: blend16
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend16_lines
    linkageType: ''
    returnType: void
    signature: void blend16(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend16_lines
      Src: /src/dav1d/src/ppc/mc_tmpl.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: blend32
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend16_lines
    linkageType: ''
    returnType: void
    signature: void blend32(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ppc/mc_tmpl.c:276,1
    - Dst: ctz
      Src: /src/dav1d/src/ppc/mc_tmpl.c:277,1
    - Dst: blend
      Src: /src/dav1d/src/ppc/mc_tmpl.c:280,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/mc_tmpl.c:280,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/mc_tmpl.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - dst
    - dst_stride
    - tmp
    - w
    - h
    - mask
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - uint8_t*
    assertStmts:
    - condition: (w <= 32)
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/dav1d/src/ppc/mc_tmpl.c
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: dav1d_blend_8bpc_pwr9
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - ctz
    - assert
    - blend
    linkageType: ''
    returnType: void
    signature: "void dav1d_blend_8bpc_pwr9(pixel *dst, const ptrdiff_t dst_stride,
      const pixel *tmp,\n                           const int w, int h, const uint8_t
      *mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/mc_tmpl.c:289,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:290,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:291,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:292,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:293,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:294,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:296,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:298,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:299,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:300,1
    - Dst: BLEND_LINES2
      Src: /src/dav1d/src/ppc/mc_tmpl.c:304,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:306,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:307,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:309,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - dst
    - tmp
    - mask
    - stride
    - mstride
    - l
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 311
    functionName: blend_v_h
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_splats
    - vec_sub
    - vec_pack
    - vec_xst_len
    - vec_mergeh
    - vec_xl
    - BLEND_LINES2
    linkageType: ''
    returnType: void
    signature: void blend_v_h(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride, int mstride, int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/mc_tmpl.c:315,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:316,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:317,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:318,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:319,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:320,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:322,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:324,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:325,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:327,1
    - Dst: BLEND_LINES2
      Src: /src/dav1d/src/ppc/mc_tmpl.c:332,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:334,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:335,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:337,1
    - Dst: BLEND_LINES2
      Src: /src/dav1d/src/ppc/mc_tmpl.c:339,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:341,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:342,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:344,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - dst
    - tmp
    - mask
    - stride
    - mstride
    - l
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 346
    functionName: blend_v_hl
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_splats
    - vec_sub
    - vec_pack
    - vec_mergel
    - vec_xst_len
    - vec_mergeh
    - vec_xl
    - BLEND_LINES2
    linkageType: ''
    returnType: void
    signature: void blend_v_hl(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride, int mstride, int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_v_h
      Src: /src/dav1d/src/ppc/mc_tmpl.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: blend_v3
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_v_h
    linkageType: ''
    returnType: void
    signature: void blend_v3(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_v_h
      Src: /src/dav1d/src/ppc/mc_tmpl.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: blend_v6
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_v_h
    linkageType: ''
    returnType: void
    signature: void blend_v6(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_v_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: blend_v12
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_v_hl
    linkageType: ''
    returnType: void
    signature: void blend_v12(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_v_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:365,1
    - Dst: blend_v_h
      Src: /src/dav1d/src/ppc/mc_tmpl.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: blend_v24
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_v_h
    - blend_v_hl
    linkageType: ''
    returnType: void
    signature: void blend_v24(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_px
      Src: /src/dav1d/src/ppc/mc_tmpl.c:371,1
    - Dst: blend_px
      Src: /src/dav1d/src/ppc/mc_tmpl.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: blend_v1
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_px
    linkageType: ''
    returnType: void
    signature: void blend_v1(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ppc/mc_tmpl.c:384,1
    - Dst: ctz
      Src: /src/dav1d/src/ppc/mc_tmpl.c:385,1
    - Dst: blend
      Src: /src/dav1d/src/ppc/mc_tmpl.c:388,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/mc_tmpl.c:388,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/mc_tmpl.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - dst
    - dst_stride
    - tmp
    - w
    - h
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    assertStmts:
    - condition: (w <= 32)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/dav1d/src/ppc/mc_tmpl.c
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: dav1d_blend_v_8bpc_pwr9
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - ctz
    - assert
    - blend
    linkageType: ''
    returnType: void
    signature: "void dav1d_blend_v_8bpc_pwr9(pixel *dst, const ptrdiff_t dst_stride,
      const pixel *tmp,\n                             const int w, int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/mc_tmpl.c:397,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:398,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:399,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:400,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:401,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:402,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:403,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:404,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/mc_tmpl.c:405,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/mc_tmpl.c:406,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/mc_tmpl.c:407,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:409,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:410,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:411,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:413,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:414,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:415,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:416,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:417,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:418,1
    - Dst: BLEND_LINES3
      Src: /src/dav1d/src/ppc/mc_tmpl.c:422,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:424,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:425,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:426,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:428,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:429,1
    - Dst: vec_xst_len
      Src: /src/dav1d/src/ppc/mc_tmpl.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - dst
    - tmp
    - mask
    - stride
    - mstride
    - l
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 431
    functionName: blend_h_h
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sub
    - BLEND_LINES3
    - vec_pack
    - vec_xst_len
    - vec_splat
    - vec_mergeh
    - vec_xl
    - vec_splats
    linkageType: ''
    returnType: void
    signature: void blend_h_h(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride, int mstride, int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/dav1d/src/ppc/mc_tmpl.c:435,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:436,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:437,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:438,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:439,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:440,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:441,1
    - Dst: vec_xl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:442,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/mc_tmpl.c:443,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/mc_tmpl.c:444,1
    - Dst: vec_splat
      Src: /src/dav1d/src/ppc/mc_tmpl.c:445,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:447,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:448,1
    - Dst: vec_sub
      Src: /src/dav1d/src/ppc/mc_tmpl.c:449,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:451,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:452,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:453,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:455,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:456,1
    - Dst: vec_mergeh
      Src: /src/dav1d/src/ppc/mc_tmpl.c:457,1
    - Dst: BLEND_LINES3
      Src: /src/dav1d/src/ppc/mc_tmpl.c:462,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:464,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:465,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:466,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:468,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:469,1
    - Dst: vec_mergel
      Src: /src/dav1d/src/ppc/mc_tmpl.c:470,1
    - Dst: BLEND_LINES3
      Src: /src/dav1d/src/ppc/mc_tmpl.c:472,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:474,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:475,1
    - Dst: vec_pack
      Src: /src/dav1d/src/ppc/mc_tmpl.c:476,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/mc_tmpl.c:478,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/mc_tmpl.c:479,1
    - Dst: vec_xst
      Src: /src/dav1d/src/ppc/mc_tmpl.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - dst
    - tmp
    - mask
    - stride
    - mstride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 481
    functionName: blend_h_hl
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - vec_sub
    - BLEND_LINES3
    - vec_pack
    - vec_mergel
    - vec_splat
    - vec_mergeh
    - vec_xl
    - vec_xst
    - vec_splats
    linkageType: ''
    returnType: void
    signature: void blend_h_hl(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride, int mstride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_px
      Src: /src/dav1d/src/ppc/mc_tmpl.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 492
    functionName: blend_h2
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_px
    linkageType: ''
    returnType: void
    signature: void blend_h2(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_h_h
      Src: /src/dav1d/src/ppc/mc_tmpl.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: blend_h4
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_h_h
    linkageType: ''
    returnType: void
    signature: void blend_h4(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_h_h
      Src: /src/dav1d/src/ppc/mc_tmpl.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: blend_h8
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_h_h
    linkageType: ''
    returnType: void
    signature: void blend_h8(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 504
    functionName: blend_h16
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_h_hl
    linkageType: ''
    returnType: void
    signature: void blend_h16(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:507,1
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: blend_h32
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_h_hl
    linkageType: ''
    returnType: void
    signature: void blend_h32(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:512,1
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:513,1
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:514,1
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: blend_h64
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_h_hl
    linkageType: ''
    returnType: void
    signature: void blend_h64(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:520,1
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:521,1
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:522,1
    - Dst: blend_h_hl
      Src: /src/dav1d/src/ppc/mc_tmpl.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - dst
    - tmp
    - mask
    - stride
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 525
    functionName: blend_h128
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - blend_h_hl
    linkageType: ''
    returnType: void
    signature: void blend_h128(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask,
      int stride)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/ppc/mc_tmpl.c:537,1
    - Dst: ctz
      Src: /src/dav1d/src/ppc/mc_tmpl.c:538,1
    - Dst: blend_px
      Src: /src/dav1d/src/ppc/mc_tmpl.c:543,1
    - Dst: blend
      Src: /src/dav1d/src/ppc/mc_tmpl.c:547,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/mc_tmpl.c:547,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/ppc/mc_tmpl.c:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - dst
    - dst_stride
    - tmp
    - w
    - h
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    assertStmts:
    - condition: (w <= 128)
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/dav1d/src/ppc/mc_tmpl.c
    constantsTouched: []
    func_position:
      end: 552
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 552
    functionName: dav1d_blend_h_8bpc_pwr9
    functionSourceFile: /src/dav1d/src/ppc/mc_tmpl.c
    functionUses: 0
    functionsReached:
    - assert
    - blend_px
    - ctz
    - blend
    - PXSTRIDE
    linkageType: ''
    returnType: void
    signature: "void dav1d_blend_h_8bpc_pwr9(pixel *dst, const ptrdiff_t dst_stride,
      const pixel *tmp,\n                             const int w, int h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - w
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: cdef_vsx_fn
    functionSourceFile: /src/dav1d/src/ppc/cdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cdef_vsx_fn(w, h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/ppc/cdef.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dCdefDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: cdef_dsp_init_ppc
    functionSourceFile: /src/dav1d/src/ppc/cdef.h
    functionUses: 1
    functionsReached:
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE cdef_dsp_init_ppc(Dav1dCdefDSPContext *const c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/ppc/looprestoration.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - bpc
    argTypes:
    - Dav1dLoopRestorationDSPContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: loop_restoration_dsp_init_ppc
    functionSourceFile: /src/dav1d/src/ppc/looprestoration.h
    functionUses: 0
    functionsReached:
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE loop_restoration_dsp_init_ppc(Dav1dLoopRestorationDSPContext
      *const c, const int bpc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/ppc/itx.h:53,1
    - Dst: assign_itx17_fn
      Src: /src/dav1d/src/ppc/itx.h:58,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/ppc/itx.h:59,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/ppc/itx.h:60,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/ppc/itx.h:61,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/ppc/itx.h:62,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/ppc/itx.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - c
    - bpc
    argTypes:
    - Dav1dInvTxfmDSPContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: itx_dsp_init_ppc
    functionSourceFile: /src/dav1d/src/ppc/itx.h
    functionUses: 1
    functionsReached:
    - assign_itx17_fn
    - assign_itx16_fn
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE itx_dsp_init_ppc(Dav1dInvTxfmDSPContext *const c, const
      int bpc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/arm/loopfilter.h:37,1
    - Dst: BF
      Src: /src/dav1d/src/arm/loopfilter.h:41,1
    - Dst: BF
      Src: /src/dav1d/src/arm/loopfilter.h:42,1
    - Dst: BF
      Src: /src/dav1d/src/arm/loopfilter.h:43,1
    - Dst: BF
      Src: /src/dav1d/src/arm/loopfilter.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dLoopFilterDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: loop_filter_dsp_init_arm
    functionSourceFile: /src/dav1d/src/arm/loopfilter.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE loop_filter_dsp_init_arm(Dav1dLoopFilterDSPContext *const
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/arm/refmvs.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dRefmvsDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: refmvs_dsp_init_arm
    functionSourceFile: /src/dav1d/src/arm/refmvs.h
    functionUses: 1
    functionsReached:
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE refmvs_dsp_init_arm(Dav1dRefmvsDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_getauxval
      Src: /src/dav1d/src/arm/cpu.c:46,1
    - Dst: dav1d_getauxval
      Src: /src/dav1d/src/arm/cpu.c:47,1
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/arm/cpu.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: dav1d_get_cpu_flags_arm
    functionSourceFile: /src/dav1d/src/arm/cpu.c
    functionUses: 1
    functionsReached:
    - dav1d_getauxval
    - dav1d_get_default_cpu_flags
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_arm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_getauxval
      Src: /src/dav1d/src/arm/cpu.c:65,1
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/arm/cpu.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: dav1d_get_cpu_flags_arm
    functionSourceFile: /src/dav1d/src/arm/cpu.c
    functionUses: 1
    functionsReached:
    - dav1d_getauxval
    - dav1d_get_default_cpu_flags
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_arm(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/dav1d/src/arm/cpu.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - feature
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: have_feature
    functionSourceFile: /src/dav1d/src/arm/cpu.c
    functionUses: 0
    functionsReached:
    - sysctlbyname
    linkageType: ''
    returnType: int
    signature: int have_feature(const char *feature)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/arm/cpu.c:88,1
    - Dst: have_feature
      Src: /src/dav1d/src/arm/cpu.c:89,1
    - Dst: have_feature
      Src: /src/dav1d/src/arm/cpu.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: dav1d_get_cpu_flags_arm
    functionSourceFile: /src/dav1d/src/arm/cpu.c
    functionUses: 1
    functionsReached:
    - dav1d_get_default_cpu_flags
    - have_feature
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_arm(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/arm/cpu.c:104,1
    - Dst: sysctl
      Src: /src/dav1d/src/arm/cpu.c:115,1
    - Dst: ID_AA64ISAR0_DP
      Src: /src/dav1d/src/arm/cpu.c:116,1
    - Dst: sysctl
      Src: /src/dav1d/src/arm/cpu.c:123,1
    - Dst: ID_AA64ISAR1_I8MM
      Src: /src/dav1d/src/arm/cpu.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: dav1d_get_cpu_flags_arm
    functionSourceFile: /src/dav1d/src/arm/cpu.c
    functionUses: 1
    functionsReached:
    - ID_AA64ISAR1_I8MM
    - ID_AA64ISAR0_DP
    - sysctl
    - dav1d_get_default_cpu_flags
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_arm(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/arm/cpu.c:138,1
    - Dst: IsProcessorFeaturePresent
      Src: /src/dav1d/src/arm/cpu.c:140,1
    - Dst: IsProcessorFeaturePresent
      Src: /src/dav1d/src/arm/cpu.c:144,1
    - Dst: IsProcessorFeaturePresent
      Src: /src/dav1d/src/arm/cpu.c:148,1
    - Dst: IsProcessorFeaturePresent
      Src: /src/dav1d/src/arm/cpu.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: dav1d_get_cpu_flags_arm
    functionSourceFile: /src/dav1d/src/arm/cpu.c
    functionUses: 1
    functionsReached:
    - IsProcessorFeaturePresent
    - dav1d_get_default_cpu_flags
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_arm(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/dav1d/src/arm/cpu.c:164,1
    - Dst: strlen
      Src: /src/dav1d/src/arm/cpu.c:171,1
    - Dst: fgets
      Src: /src/dav1d/src/arm/cpu.c:172,1
    - Dst: strstr
      Src: /src/dav1d/src/arm/cpu.c:175,1
    - Dst: isgraph
      Src: /src/dav1d/src/arm/cpu.c:176,1
    - Dst: isspace
      Src: /src/dav1d/src/arm/cpu.c:177,1
    - Dst: feof
      Src: /src/dav1d/src/arm/cpu.c:177,1
    - Dst: fclose
      Src: /src/dav1d/src/arm/cpu.c:178,1
    - Dst: strchr
      Src: /src/dav1d/src/arm/cpu.c:185,1
    - Dst: strlen
      Src: /src/dav1d/src/arm/cpu.c:185,1
    - Dst: fseek
      Src: /src/dav1d/src/arm/cpu.c:189,1
    - Dst: fclose
      Src: /src/dav1d/src/arm/cpu.c:194,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 1
    argNames:
    - flag
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 197
    functionName: parse_proc_cpuinfo
    functionSourceFile: /src/dav1d/src/arm/cpu.c
    functionUses: 0
    functionsReached:
    - isgraph
    - fclose
    - fseek
    - strstr
    - feof
    - isspace
    - fopen
    - strlen
    - strchr
    - fgets
    linkageType: ''
    returnType: unsigned
    signature: unsigned parse_proc_cpuinfo(const char *flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/arm/cpu.c:200,1
    - Dst: parse_proc_cpuinfo
      Src: /src/dav1d/src/arm/cpu.c:201,1
    - Dst: parse_proc_cpuinfo
      Src: /src/dav1d/src/arm/cpu.c:202,1
    - Dst: parse_proc_cpuinfo
      Src: /src/dav1d/src/arm/cpu.c:203,1
    - Dst: parse_proc_cpuinfo
      Src: /src/dav1d/src/arm/cpu.c:204,1
    - Dst: parse_proc_cpuinfo
      Src: /src/dav1d/src/arm/cpu.c:206,1
    - Dst: parse_proc_cpuinfo
      Src: /src/dav1d/src/arm/cpu.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: dav1d_get_cpu_flags_arm
    functionSourceFile: /src/dav1d/src/arm/cpu.c
    functionUses: 1
    functionsReached:
    - parse_proc_cpuinfo
    - dav1d_get_default_cpu_flags
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_arm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_default_cpu_flags
      Src: /src/dav1d/src/arm/cpu.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: dav1d_get_cpu_flags_arm
    functionSourceFile: /src/dav1d/src/arm/cpu.c
    functionUses: 1
    functionsReached:
    - dav1d_get_default_cpu_flags
    linkageType: ''
    returnType: COLD unsigned
    signature: COLD unsigned dav1d_get_cpu_flags_arm(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/arm/mc.h:62,1
    - Dst: init_8tap_fns
      Src: /src/dav1d/src/arm/mc.h:66,1
    - Dst: init_mc_fn
      Src: /src/dav1d/src/arm/mc.h:68,1
    - Dst: init_mct_fn
      Src: /src/dav1d/src/arm/mc.h:69,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:71,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:72,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:73,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:74,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:75,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:76,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:77,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:78,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:79,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:80,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:81,1
    - Dst: BF
      Src: /src/dav1d/src/arm/mc.h:82,1
    - Dst: init_8tap_fns
      Src: /src/dav1d/src/arm/mc.h:88,1
    - Dst: init_8tap_fns
      Src: /src/dav1d/src/arm/mc.h:94,1
    - Dst: init_8tap_fns
      Src: /src/dav1d/src/arm/mc.h:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dMCDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 107
    functionName: mc_dsp_init_arm
    functionSourceFile: /src/dav1d/src/arm/mc.h
    functionUses: 1
    functionsReached:
    - init_mc_fn
    - init_8tap_fns
    - dav1d_get_cpu_flags
    - init_mct_fn
    - BF
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mc_dsp_init_arm(Dav1dMCDSPContext *const c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: init_mc_fn
    functionSourceFile: /src/dav1d/src/arm/mc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_mc_fn(type, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: init_mct_fn
    functionSourceFile: /src/dav1d/src/arm/mc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_mct_fn(type, name, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - suff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: GEN_GRAIN_UV
    functionSourceFile: /src/dav1d/src/arm/filmgrain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_GRAIN_UV(suff)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_random_number
      Src: /src/dav1d/src/arm/filmgrain.h:105,1
    - Dst: BF
      Src: /src/dav1d/src/arm/filmgrain.h:113,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 9
    argNames:
    - dst_row
    - src_row
    - stride
    - data
    - pw
    - scaling
    - grain_lut
    - bh
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - pixel*
    - ptrdiff_t
    - Dav1dFilmGrainData*
    - size_t
    - uint8_t[]
    - entry[][]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 119
    functionName: fgy_32x32xn_neon
    functionSourceFile: /src/dav1d/src/arm/filmgrain.h
    functionUses: 0
    functionsReached:
    - BF
    - get_random_number
    linkageType: ''
    returnType: void
    signature: "void fgy_32x32xn_neon(pixel *const dst_row, const pixel *const src_row,\n
      \                            const ptrdiff_t stride,\n                             const
      Dav1dFilmGrainData *const data, const size_t pw,\n                             const
      uint8_t scaling[SCALING_SIZE],\n                             const entry grain_lut[][GRAIN_WIDTH],\n
      \                            const int bh, const int row_num HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nm
    - ','
    - sx
    - ','
    - sy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 148
    functionName: FGUV
    functionSourceFile: /src/dav1d/src/arm/filmgrain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FGUV(nm, sx, sy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/arm/filmgrain.h:191,1
    - Dst: BF
      Src: /src/dav1d/src/arm/filmgrain.h:195,1
    - Dst: BF
      Src: /src/dav1d/src/arm/filmgrain.h:196,1
    - Dst: BF
      Src: /src/dav1d/src/arm/filmgrain.h:197,1
    - Dst: BF
      Src: /src/dav1d/src/arm/filmgrain.h:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dFilmGrainDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 204
    functionName: film_grain_dsp_init_arm
    functionSourceFile: /src/dav1d/src/arm/filmgrain.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE film_grain_dsp_init_arm(Dav1dFilmGrainDSPContext *const
      c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_upsample
      Src: /src/dav1d/src/arm/ipred.h:84,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:86,1
    - Dst: imin
      Src: /src/dav1d/src/arm/ipred.h:88,1
    - Dst: get_filter_strength
      Src: /src/dav1d/src/arm/ipred.h:94,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:96,1
    - Dst: imin
      Src: /src/dav1d/src/arm/ipred.h:98,1
    - Dst: imin
      Src: /src/dav1d/src/arm/ipred.h:102,1
    - Dst: memcpy
      Src: /src/dav1d/src/arm/ipred.h:103,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:108,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:111,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft_in
    - width
    - height
    - angle
    - max_width
    - "max_height\n                          HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 116
    functionName: ipred_z1_neon
    functionSourceFile: /src/dav1d/src/arm/ipred.h
    functionUses: 0
    functionsReached:
    - memcpy
    - imin
    - get_filter_strength
    - BF
    - get_upsample
    linkageType: ''
    returnType: void
    signature: "void ipred_z1_neon(pixel *dst, const ptrdiff_t stride,\n                          const
      pixel *const topleft_in,\n                          const int width, const int
      height, int angle,\n                          const int max_width, const int
      max_height\n                          HIGHBD_DECL_SUFFIX)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/arm/ipred.h:150,1
    - Dst: get_upsample
      Src: /src/dav1d/src/arm/ipred.h:154,1
    - Dst: get_upsample
      Src: /src/dav1d/src/arm/ipred.h:156,1
    - Dst: get_filter_strength
      Src: /src/dav1d/src/arm/ipred.h:170,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:173,1
    - Dst: imin
      Src: /src/dav1d/src/arm/ipred.h:173,1
    - Dst: memcpy
      Src: /src/dav1d/src/arm/ipred.h:177,1
    - Dst: pixel_copy
      Src: /src/dav1d/src/arm/ipred.h:180,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:185,1
    - Dst: get_filter_strength
      Src: /src/dav1d/src/arm/ipred.h:192,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:196,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:198,1
    - Dst: imin
      Src: /src/dav1d/src/arm/ipred.h:198,1
    - Dst: memcpy
      Src: /src/dav1d/src/arm/ipred.h:202,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:205,1
    - Dst: assert
      Src: /src/dav1d/src/arm/ipred.h:211,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:213,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:216,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:219,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft_in
    - width
    - height
    - angle
    - max_width
    - "max_height\n                          HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (!(upsample_above && upsample_left))
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/dav1d/src/arm/ipred.h
    - condition: (angle > 90 && angle < 180)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/dav1d/src/arm/ipred.h
    constantsTouched: []
    func_position:
      end: 222
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 222
    functionName: ipred_z2_neon
    functionSourceFile: /src/dav1d/src/arm/ipred.h
    functionUses: 0
    functionsReached:
    - memcpy
    - imin
    - get_filter_strength
    - assert
    - pixel_copy
    - BF
    - get_upsample
    linkageType: ''
    returnType: void
    signature: "void ipred_z2_neon(pixel *dst, const ptrdiff_t stride,\n                          const
      pixel *const topleft_in,\n                          const int width, const int
      height, int angle,\n                          const int max_width, const int
      max_height\n                          HIGHBD_DECL_SUFFIX)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/src/arm/ipred.h:242,1
    - Dst: get_upsample
      Src: /src/dav1d/src/arm/ipred.h:248,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:251,1
    - Dst: imax
      Src: /src/dav1d/src/arm/ipred.h:252,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:253,1
    - Dst: imin
      Src: /src/dav1d/src/arm/ipred.h:255,1
    - Dst: get_filter_strength
      Src: /src/dav1d/src/arm/ipred.h:261,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:265,1
    - Dst: imax
      Src: /src/dav1d/src/arm/ipred.h:266,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:267,1
    - Dst: imin
      Src: /src/dav1d/src/arm/ipred.h:269,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:273,1
    - Dst: imin
      Src: /src/dav1d/src/arm/ipred.h:274,1
    - Dst: imin
      Src: /src/dav1d/src/arm/ipred.h:275,1
    - Dst: imax
      Src: /src/dav1d/src/arm/ipred.h:281,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:283,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:286,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 8
    argNames:
    - dst
    - stride
    - topleft_in
    - width
    - height
    - angle
    - max_width
    - "max_height\n                          HIGHBD_DECL_SUFFIX"
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (angle > 180)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/dav1d/src/arm/ipred.h
    constantsTouched: []
    func_position:
      end: 291
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 291
    functionName: ipred_z3_neon
    functionSourceFile: /src/dav1d/src/arm/ipred.h
    functionUses: 0
    functionsReached:
    - imin
    - get_filter_strength
    - assert
    - imax
    - BF
    - get_upsample
    linkageType: ''
    returnType: void
    signature: "void ipred_z3_neon(pixel *dst, const ptrdiff_t stride,\n                          const
      pixel *const topleft_in,\n                          const int width, const int
      height, int angle,\n                          const int max_width, const int
      max_height\n                          HIGHBD_DECL_SUFFIX)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/arm/ipred.h:295,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:299,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:300,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:301,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:302,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:303,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:304,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:305,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:306,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:307,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:308,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:314,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:316,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:317,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:318,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:319,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:321,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:322,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:323,1
    - Dst: BF
      Src: /src/dav1d/src/arm/ipred.h:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dIntraPredDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 326
    functionName: intra_pred_dsp_init_arm
    functionSourceFile: /src/dav1d/src/arm/ipred.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE intra_pred_dsp_init_arm(Dav1dIntraPredDSPContext *const
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - h
    - ','
    - tmp_stride
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: DEFINE_FILTER
    functionSourceFile: /src/dav1d/src/arm/cdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_FILTER(w, h, tmp_stride)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/arm/cdef.h:80,1
    - Dst: BF
      Src: /src/dav1d/src/arm/cdef.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - Dav1dCdefDSPContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: cdef_dsp_init_arm
    functionSourceFile: /src/dav1d/src/arm/cdef.h
    functionUses: 1
    functionsReached:
    - BF
    - dav1d_get_cpu_flags
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE cdef_dsp_init_arm(Dav1dCdefDSPContext *const c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:95,1
    - Dst: p
      Src: /src/dav1d/src/arm/looprestoration.h:97,1
    - Dst: BF
      Src: /src/dav1d/src/arm/looprestoration.h:106,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:108,1
    - Dst: BF
      Src: /src/dav1d/src/arm/looprestoration.h:109,1
    - Dst: BF
      Src: /src/dav1d/src/arm/looprestoration.h:112,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:115,1
    - Dst: BF
      Src: /src/dav1d/src/arm/looprestoration.h:121,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:124,1
    - Dst: BF
      Src: /src/dav1d/src/arm/looprestoration.h:130,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:133,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:157,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:166,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:175,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:176,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:185,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/src/arm/looprestoration.h:186,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 8
    argNames:
    - p
    - stride
    - (*left)
    - lpf
    - w
    - h
    - params
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel*
    - ptrdiff_t
    - pixel[]
    - pixel*
    - int
    - int
    - LooprestorationParams*
    - enum LrEdgeFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 190
    functionName: wiener_filter_neon
    functionSourceFile: /src/dav1d/src/arm/looprestoration.h
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - BF
    - p
    linkageType: ''
    returnType: void
    signature: "void wiener_filter_neon(pixel *p, const ptrdiff_t stride,\n                               const
      pixel (*left)[4], const pixel *lpf,\n                               const int
      w, int h,\n                               const LooprestorationParams *const
      params,\n                               const enum LrEdgeFlags edges HIGHBD_DECL_SUFFIX)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - sumsq_ptrs
    - sum_ptrs
    - n
    argTypes:
    - int32_t**
    - int16_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: rotate_neon
    functionSourceFile: /src/dav1d/src/arm/looprestoration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rotate_neon(int32_t **sumsq_ptrs, int16_t **sum_ptrs, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - sumsq_ptrs
    - sum_ptrs
    argTypes:
    - int32_t**
    - int16_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 252
    functionName: rotate5_x2_neon
    functionSourceFile: /src/dav1d/src/arm/looprestoration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rotate5_x2_neon(int32_t **sumsq_ptrs, int16_t **sum_ptrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_sgr_box3_row_v_neon
      Src: /src/dav1d/src/arm/looprestoration.h:323,1
    - Dst: dav1d_sgr_calc_row_ab1_neon
      Src: /src/dav1d/src/arm/looprestoration.h:324,1
    - Dst: dav1d_sgr_box3_vert_neon
      Src: /src/dav1d/src/arm/looprestoration.h:327,1
    - Dst: rotate_neon
      Src: /src/dav1d/src/arm/looprestoration.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - sumsq
    - sum
    - sumsq_out
    - sum_out
    - w
    - s
    - bitdepth_max
    argTypes:
    - int32_t**
    - int16_t**
    - int32_t*
    - int16_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: sgr_box3_vert_neon
    functionSourceFile: /src/dav1d/src/arm/looprestoration.h
    functionUses: 1
    functionsReached:
    - dav1d_sgr_box3_vert_neon
    - dav1d_sgr_calc_row_ab1_neon
    - dav1d_sgr_box3_row_v_neon
    - rotate_neon
    linkageType: ''
    returnType: void
    signature: "void sgr_box3_vert_neon(int32_t **sumsq, int16_t **sum,\n                               int32_t
      *sumsq_out, int16_t *sum_out,\n                               const int w, const
      int s, const int bitdepth_max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_sgr_box5_row_v_neon
      Src: /src/dav1d/src/arm/looprestoration.h:336,1
    - Dst: dav1d_sgr_calc_row_ab2_neon
      Src: /src/dav1d/src/arm/looprestoration.h:337,1
    - Dst: dav1d_sgr_box5_vert_neon
      Src: /src/dav1d/src/arm/looprestoration.h:340,1
    - Dst: rotate5_x2_neon
      Src: /src/dav1d/src/arm/looprestoration.h:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - sumsq
    - sum
    - sumsq_out
    - sum_out
    - w
    - s
    - bitdepth_max
    argTypes:
    - int32_t**
    - int16_t**
    - int32_t*
    - int16_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: sgr_box5_vert_neon
    functionSourceFile: /src/dav1d/src/arm/looprestoration.h
    functionUses: 1
    functionsReached:
    - dav1d_sgr_calc_row_ab2_neon
    - dav1d_sgr_box5_row_v_neon
    - dav1d_sgr_box5_vert_neon
    - rotate5_x2_neon
    linkageType: ''
    returnType: void
    signature: "void sgr_box5_vert_neon(int32_t **sumsq, int16_t **sum,\n                               int32_t
      *sumsq_out, int16_t *sum_out,\n                               const int w, const
      int s, const int bitdepth_max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BF
      Src: /src/dav1d/src/arm/looprestoration.h:352,1
    - Dst: sgr_box3_vert_neon
      Src: /src/dav1d/src/arm/looprestoration.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 10
    argNames:
    - sumsq
    - sum
    - AA
    - BB
    - (*left)
    - src
    - w
    - s
    - edges
    - bitdepth_max
    argTypes:
    - int32_t**
    - int16_t**
    - int32_t*
    - int16_t*
    - pixel[]
    - pixel*
    - int
    - int
    - enum LrEdgeFlags
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: sgr_box3_hv_neon
    functionSourceFile: /src/dav1d/src/arm/looprestoration.h
    functionUses: 0
    functionsReached:
    - sgr_box3_vert_neon
    - BF
    linkageType: ''
    returnType: void
    signature: "void sgr_box3_hv_neon(int32_t **sumsq, int16_t **sum,\n                             int32_t
      *AA, int16_t *BB,\n                             const pixel (*left)[4],\n                             const
      pixel *src, const int w,\n                             const int s,\n                             const
      enum LrEdgeFlags edges,\n                             const int bitdepth_max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotate_neon
      Src: /src/dav1d/src/arm/looprestoration.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dst
    - stride
    - A_ptrs
    - B_ptrs
    - w
    - HIGHBD_DECL_SUFFIX
    argTypes:
    - pixel**
    - ptrdiff_t
    - int32_t**
    - int16_t**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 395
    functionName: sgr_finish1_neon
    functionSourceFile: /src/dav1d/src/arm/looprestoration.h
    functionUses: 0
    functionsReached:
    - rotate_neon
    linkageType: ''
    returnType: void
    signature: "void sgr_finish1_neon(pixel **dst, const ptrdiff_t stride,\n                             int32_t
      **A_ptrs, int16_t **B_ptrs, const int w,\n                             const
      int w1 HIGHBD_DECL_SUFFIX)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_get_cpu_flags
      Src: /src/dav1d/src/arm/itx.h:55,1
    - Dst: assign_itx_fn
      Src: /src/dav1d/src/arm/itx.h:59,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/arm/itx.h:63,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/arm/itx.h:64,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/arm/itx.h:65,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/arm/itx.h:66,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/arm/itx.h:67,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/arm/itx.h:68,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/arm/itx.h:69,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/arm/itx.h:70,1
    - Dst: assign_itx16_fn
      Src: /src/dav1d/src/arm/itx.h:71,1
    - Dst: assign_itx12_fn
      Src: /src/dav1d/src/arm/itx.h:72,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/arm/itx.h:73,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/arm/itx.h:74,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/arm/itx.h:75,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/arm/itx.h:76,1
    - Dst: assign_itx2_fn
      Src: /src/dav1d/src/arm/itx.h:77,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/arm/itx.h:78,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/arm/itx.h:79,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/arm/itx.h:80,1
    - Dst: assign_itx1_fn
      Src: /src/dav1d/src/arm/itx.h:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - c
    - bpc
    - all_simd
    argTypes:
    - Dav1dInvTxfmDSPContext*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 83
    functionName: itx_dsp_init_arm
    functionSourceFile: /src/dav1d/src/arm/itx.h
    functionUses: 1
    functionsReached:
    - assign_itx12_fn
    - assign_itx16_fn
    - assign_itx2_fn
    - dav1d_get_cpu_flags
    - assign_itx_fn
    - assign_itx1_fn
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: "ALWAYS_INLINE itx_dsp_init_arm(Dav1dInvTxfmDSPContext *const c, int
      bpc,\n                                           int *const all_simd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: atomic_init
    functionSourceFile: /src/dav1d/include/compat/gcc/stdatomic.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_init(p_a, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: atomic_store
    functionSourceFile: /src/dav1d/include/compat/gcc/stdatomic.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_store(p_a, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p_a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: atomic_load
    functionSourceFile: /src/dav1d/include/compat/gcc/stdatomic.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_load(p_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - mo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: atomic_load_explicit
    functionSourceFile: /src/dav1d/include/compat/gcc/stdatomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_load_explicit(p_a, mo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - inc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: atomic_fetch_add
    functionSourceFile: /src/dav1d/include/compat/gcc/stdatomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_add(p_a, inc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p_a
    - ','
    - inc
    - ','
    - mo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: atomic_fetch_add_explicit
    functionSourceFile: /src/dav1d/include/compat/gcc/stdatomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_add_explicit(p_a, inc, mo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - dec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: atomic_fetch_sub
    functionSourceFile: /src/dav1d/include/compat/gcc/stdatomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_sub(p_a, dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: atomic_exchange
    functionSourceFile: /src/dav1d/include/compat/gcc/stdatomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_exchange(p_a, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: atomic_fetch_or
    functionSourceFile: /src/dav1d/include/compat/gcc/stdatomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_or(p_a, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p_a
    - ','
    - expected
    - ','
    - desired
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: atomic_compare_exchange_strong
    functionSourceFile: /src/dav1d/include/compat/gcc/stdatomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_compare_exchange_strong(p_a, expected, desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: atomic_init
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_init(p_a, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: atomic_store
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_store(p_a, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p_a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: atomic_load
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_load(p_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: atomic_exchange
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_exchange(p_a, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - mo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: atomic_load_explicit
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_load_explicit(p_a, mo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedCompareExchange
      Src: /src/dav1d/include/compat/msvc/stdatomic.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - expected
    - desired
    argTypes:
    - LONG*
    - LONG*
    - LONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: atomic_compare_exchange_strong_int
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 0
    functionsReached:
    - InterlockedCompareExchange
    linkageType: ''
    returnType: int
    signature: "int atomic_compare_exchange_strong_int(LONG *obj, LONG *expected,\n
      \                                                    LONG desired)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p_a
    - ','
    - expected
    - ','
    - desired
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: atomic_compare_exchange_strong
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_compare_exchange_strong(p_a, expected, desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - inc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: atomic_fetch_add
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_add(p_a, inc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - dec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: atomic_fetch_sub
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_sub(p_a, dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p_a
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: atomic_fetch_or
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_or(p_a, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p_a
    - ','
    - inc
    - ','
    - mo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: atomic_fetch_add_explicit
    functionSourceFile: /src/dav1d/include/compat/msvc/stdatomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_add_explicit(p_a, inc, mo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: DAV1D_API_MAJOR
    functionSourceFile: /src/dav1d/include/dav1d/version.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_API_MAJOR(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: DAV1D_API_MINOR
    functionSourceFile: /src/dav1d/include/dav1d/version.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_API_MINOR(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: DAV1D_API_PATCH
    functionSourceFile: /src/dav1d/include/dav1d/version.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_API_PATCH(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: DAV1D_ERR
    functionSourceFile: /src/dav1d/include/dav1d/common.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_ERR(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: DAV1D_ERR
    functionSourceFile: /src/dav1d/include/dav1d/common.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAV1D_ERR(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: __has_attribute
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_attribute(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: __has_feature
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_feature(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: ATTR_FORMAT_PRINTF
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTR_FORMAT_PRINTF(fmt, attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: ATTR_FORMAT_PRINTF
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTR_FORMAT_PRINTF(fmt, attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ll
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: ALIGN
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(ll, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - line
    - ','
    - align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: ALIGN
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(line, align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - var
    - ','
    - sz1d
    - ','
    - sznd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: ALIGN_STK_64
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_STK_64(type, var, sz1d, sznd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - var
    - ','
    - sz1d
    - ','
    - sznd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: ALIGN_STK_32
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_STK_32(type, var, sz1d, sznd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - var
    - ','
    - sz1d
    - ','
    - sznd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: ALIGN_STK_16
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_STK_16(type, var, sz1d, sznd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: NO_SANITIZE
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NO_SANITIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: assert
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 118
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: dav1d_uninit
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_uninit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: dav1d_uninit
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dav1d_uninit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward
      Src: /src/dav1d/include/common/attributes.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: ctz
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 10
    functionsReached:
    - _BitScanForward
    linkageType: ''
    returnType: int
    signature: int ctz(const unsigned int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanReverse
      Src: /src/dav1d/include/common/attributes.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: clz
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 1
    functionsReached:
    - _BitScanReverse
    linkageType: ''
    returnType: int
    signature: int clz(const unsigned int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanReverse64
      Src: /src/dav1d/include/common/attributes.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: clzll
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached:
    - _BitScanReverse64
    linkageType: ''
    returnType: int
    signature: int clzll(const unsigned long long mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clz
      Src: /src/dav1d/include/common/attributes.h:176,1
    - Dst: clz
      Src: /src/dav1d/include/common/attributes.h:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: clzll
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached:
    - clz
    linkageType: ''
    returnType: int
    signature: int clzll(const unsigned long long mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_ctz
      Src: /src/dav1d/include/common/attributes.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: ctz
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 11
    functionsReached:
    - __builtin_ctz
    linkageType: ''
    returnType: int
    signature: int ctz(const unsigned int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clz
      Src: /src/dav1d/include/common/attributes.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: clz
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 3
    functionsReached:
    - __builtin_clz
    linkageType: ''
    returnType: int
    signature: int clz(const unsigned int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clzll
      Src: /src/dav1d/include/common/attributes.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: clzll
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 1
    functionsReached:
    - __builtin_clzll
    linkageType: ''
    returnType: int
    signature: int clzll(const unsigned long long mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - field
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: CHECK_OFFSET
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_OFFSET(type, field, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: CHECK_SIZE
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIZE(type, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - field
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: CHECK_OFFSET
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_OFFSET(type, field, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: CHECK_SIZE
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIZE(type, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: PACKED
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACKED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: PACKED
    functionSourceFile: /src/dav1d/include/common/attributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACKED(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/dav1d/include/common/dump.h:40,1
    - Dst: fwrite
      Src: /src/dav1d/include/common/dump.h:42,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/include/common/dump.h:43,1
    - Dst: fclose
      Src: /src/dav1d/include/common/dump.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - buf
    - stride
    - w
    - h
    - file
    argTypes:
    - pixel*
    - ptrdiff_t
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: append_plane_to_file
    functionSourceFile: /src/dav1d/include/common/dump.h
    functionUses: 0
    functionsReached:
    - PXSTRIDE
    - fclose
    - fopen
    - fwrite
    linkageType: ''
    returnType: void
    signature: "void append_plane_to_file(const pixel *buf, ptrdiff_t stride,\n                                        int
      w, int h, const char *const file)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/dav1d/include/common/dump.h:51,1
    - Dst: fprintf
      Src: /src/dav1d/include/common/dump.h:55,1
    - Dst: PXSTRIDE
      Src: /src/dav1d/include/common/dump.h:56,1
    - Dst: fprintf
      Src: /src/dav1d/include/common/dump.h:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - out
    - buf
    - stride
    - w
    - h
    - what
    argTypes:
    - FILE*
    - pixel*
    - ptrdiff_t
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: hex_fdump
    functionSourceFile: /src/dav1d/include/common/dump.h
    functionUses: 1
    functionsReached:
    - PXSTRIDE
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void hex_fdump(FILE *out, const pixel *buf, ptrdiff_t stride,\n                             int
      w, int h, const char *what)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hex_fdump
      Src: /src/dav1d/include/common/dump.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - buf
    - stride
    - w
    - h
    - what
    argTypes:
    - pixel*
    - ptrdiff_t
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: hex_dump
    functionSourceFile: /src/dav1d/include/common/dump.h
    functionUses: 3
    functionsReached:
    - hex_fdump
    linkageType: ''
    returnType: void
    signature: "void hex_dump(const pixel *buf, ptrdiff_t stride,\n                            int
      w, int h, const char *what)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/dav1d/include/common/dump.h:71,1
    - Dst: printf
      Src: /src/dav1d/include/common/dump.h:75,1
    - Dst: printf
      Src: /src/dav1d/include/common/dump.h:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - buf
    - w
    - h
    - len
    - what
    argTypes:
    - coef*
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: coef_dump
    functionSourceFile: /src/dav1d/include/common/dump.h
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void coef_dump(const coef *buf, const int w, const int h,\n                             const
      int len, const char *what)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/dav1d/include/common/dump.h:83,1
    - Dst: printf
      Src: /src/dav1d/include/common/dump.h:86,1
    - Dst: printf
      Src: /src/dav1d/include/common/dump.h:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - buf
    - w
    - h
    - what
    argTypes:
    - int16_t*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: ac_dump
    functionSourceFile: /src/dav1d/include/common/dump.h
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void ac_dump(const int16_t *buf, int w, int h, const char *what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: bitfn
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: BF
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF(x, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: PXSTRIDE
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 86
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PXSTRIDE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: bitdepth_from_max
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitdepth_from_max(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: pixel_copy
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pixel_copy(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - val
    - num
    argTypes:
    - pixel*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: pixel_set
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pixel_set(pixel *const dst, const int val, const int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: iclip_pixel
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iclip_pixel(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitdepth_max
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: bitdepth_from_max
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitdepth_from_max(bitdepth_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: bitfn
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: BF
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF(x, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/include/common/bitdepth.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - ptrdiff_t
    assertStmts:
    - condition: (!(x & 1))
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/dav1d/include/common/bitdepth.h
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: PXSTRIDE
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 86
    functionsReached:
    - assert
    linkageType: ''
    returnType: ptrdiff_t
    signature: ptrdiff_t PXSTRIDE(const ptrdiff_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: highbd_only
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: highbd_only(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: bytefn
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bytefn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: bitfn_decls
    functionSourceFile: /src/dav1d/include/common/bitdepth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitfn_decls(name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: debug_print
    functionSourceFile: /src/dav1d/include/common/validate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: debug_print(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: debug_abort
    functionSourceFile: /src/dav1d/include/common/validate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: debug_abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: debug_print
    functionSourceFile: /src/dav1d/include/common/validate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: debug_print(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - r
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: validate_input_or_ret_with_msg
    functionSourceFile: /src/dav1d/include/common/validate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validate_input_or_ret_with_msg(x, r, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: validate_input_or_ret
    functionSourceFile: /src/dav1d/include/common/validate.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validate_input_or_ret(x, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: validate_input
    functionSourceFile: /src/dav1d/include/common/validate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validate_input(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: imax
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int imax(const int a, const int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: imin
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int imin(const int a, const int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: umax
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned umax(const unsigned a, const unsigned b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: umin
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned umin(const unsigned a, const unsigned b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - min
    - max
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: iclip
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int iclip(const int v, const int min, const int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iclip
      Src: /src/dav1d/include/common/intops.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: iclip_u8
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 2
    functionsReached:
    - iclip
    linkageType: ''
    returnType: int
    signature: int iclip_u8(const int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - s
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: apply_sign
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int apply_sign(const int v, const int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - s
    argTypes:
    - int
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: apply_sign64
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int apply_sign64(const int v, const int64_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clz
      Src: /src/dav1d/include/common/intops.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: ulog2
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 12
    functionsReached:
    - clz
    linkageType: ''
    returnType: int
    signature: int ulog2(const unsigned v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clzll
      Src: /src/dav1d/include/common/intops.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: u64log2
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 1
    functionsReached:
    - clzll
    linkageType: ''
    returnType: int
    signature: int u64log2(const uint64_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - r
    - v
    argTypes:
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: inv_recenter
    functionSourceFile: /src/dav1d/include/common/intops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned inv_recenter(const unsigned r, const unsigned v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - frame_header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: IS_INTER_OR_SWITCH
    functionSourceFile: /src/dav1d/include/common/frame.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_INTER_OR_SWITCH(frame_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - frame_header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: IS_KEY_OR_INTRA
    functionSourceFile: /src/dav1d/include/common/frame.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_KEY_OR_INTRA(frame_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - foff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: FRAME_OFFSET_TO_PTS
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FRAME_OFFSET_TO_PTS(foff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ts
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: TS_TO_PTS
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TS_TO_PTS(ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/dav1d/examples/dav1dplay.c:108,1
    - Dst: vfprintf
      Src: /src/dav1d/examples/dav1dplay.c:109,1
    - Dst: va_end
      Src: /src/dav1d/examples/dav1dplay.c:110,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:111,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:113,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:114,1
    - Dst: exit
      Src: /src/dav1d/examples/dav1dplay.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - app
    - reason
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 127
    functionName: dp_settings_print_usage
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - vfprintf
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void dp_settings_print_usage(const char *const app,\n                                    const
      char *const reason, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/dav1d/examples/dav1dplay.c:133,1
    - Dst: dp_settings_print_usage
      Src: /src/dav1d/examples/dav1dplay.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - optarg
    - option
    - app
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: parse_unsigned
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 1
    functionsReached:
    - dp_settings_print_usage
    - strtoul
    linkageType: ''
    returnType: unsigned
    signature: "unsigned parse_unsigned(const char *const optarg, const int option,\n
      \                              const char *const app)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/dav1d/examples/dav1dplay.c:171,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:177,1
    - Dst: dav1d_version
      Src: /src/dav1d/examples/dav1dplay.c:177,1
    - Dst: exit
      Src: /src/dav1d/examples/dav1dplay.c:178,1
    - Dst: parse_unsigned
      Src: /src/dav1d/examples/dav1dplay.c:199,1
    - Dst: parse_unsigned
      Src: /src/dav1d/examples/dav1dplay.c:203,1
    - Dst: dp_settings_print_usage
      Src: /src/dav1d/examples/dav1dplay.c:206,1
    - Dst: dp_settings_print_usage
      Src: /src/dav1d/examples/dav1dplay.c:211,1
    - Dst: dp_settings_print_usage
      Src: /src/dav1d/examples/dav1dplay.c:214,1
    - Dst: strcmp
      Src: /src/dav1d/examples/dav1dplay.c:215,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - rd_ctx
    - argc
    - argv
    argTypes:
    - Dav1dPlayRenderContext*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 217
    functionName: dp_rd_ctx_parse_args
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - strcmp
    - getopt_long
    - dav1d_version
    - parse_unsigned
    - dp_settings_print_usage
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void dp_rd_ctx_parse_args(Dav1dPlayRenderContext *rd_ctx,\n                                 const
      int argc, char *const *const argv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dav1dplay.c:224,1
    - Dst: destroy_renderer
      Src: /src/dav1d/examples/dav1dplay.c:226,1
    - Dst: dp_fifo_destroy
      Src: /src/dav1d/examples/dav1dplay.c:227,1
    - Dst: SDL_DestroyMutex
      Src: /src/dav1d/examples/dav1dplay.c:228,1
    - Dst: free
      Src: /src/dav1d/examples/dav1dplay.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - rd_ctx
    argTypes:
    - Dav1dPlayRenderContext*
    assertStmts:
    - condition: (rd_ctx != NULL)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/dav1d/examples/dav1dplay.c
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: dp_rd_ctx_destroy
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - destroy_renderer
    - dp_fifo_destroy
    - free
    - assert
    - SDL_DestroyMutex
    linkageType: ''
    returnType: void
    signature: void dp_rd_ctx_destroy(Dav1dPlayRenderContext *rd_ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/dav1d/examples/dav1dplay.c:243,1
    - Dst: dav1d_default_settings
      Src: /src/dav1d/examples/dav1dplay.c:249,1
    - Dst: memset
      Src: /src/dav1d/examples/dav1dplay.c:250,1
    - Dst: dp_rd_ctx_parse_args
      Src: /src/dav1d/examples/dav1dplay.c:251,1
    - Dst: SDL_Init
      Src: /src/dav1d/examples/dav1dplay.c:254,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:255,1
    - Dst: SDL_GetError
      Src: /src/dav1d/examples/dav1dplay.c:255,1
    - Dst: SDL_RegisterEvents
      Src: /src/dav1d/examples/dav1dplay.c:261,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:263,1
    - Dst: dp_fifo_create
      Src: /src/dav1d/examples/dav1dplay.c:267,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:269,1
    - Dst: SDL_CreateMutex
      Src: /src/dav1d/examples/dav1dplay.c:273,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:275,1
    - Dst: SDL_GetError
      Src: /src/dav1d/examples/dav1dplay.c:275,1
    - Dst: dp_get_renderer
      Src: /src/dav1d/examples/dav1dplay.c:280,1
    - Dst: printf
      Src: /src/dav1d/examples/dav1dplay.c:283,1
    - Dst: printf
      Src: /src/dav1d/examples/dav1dplay.c:286,1
    - Dst: create_renderer
      Src: /src/dav1d/examples/dav1dplay.c:289,1
    - Dst: SDL_DestroyMutex
      Src: /src/dav1d/examples/dav1dplay.c:298,1
    - Dst: dp_fifo_destroy
      Src: /src/dav1d/examples/dav1dplay.c:300,1
    - Dst: free
      Src: /src/dav1d/examples/dav1dplay.c:301,1
    - Dst: SDL_Quit
      Src: /src/dav1d/examples/dav1dplay.c:302,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 238
    functionDepth: 6
    functionLinenumber: 238
    functionLinenumberEnd: 304
    functionName: dp_rd_ctx_create
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - SDL_CreateMutex
    - dp_fifo_destroy
    - calloc
    - dp_rd_ctx_parse_args
    - dp_get_renderer
    - free
    - dp_fifo_create
    - SDL_Quit
    - create_renderer
    - memset
    - SDL_Init
    - SDL_DestroyMutex
    - printf
    - SDL_GetError
    - SDL_RegisterEvents
    - fprintf
    - dav1d_default_settings
    linkageType: ''
    returnType: Dav1dPlayRenderContext
    signature: Dav1dPlayRenderContext *dp_rd_ctx_create(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SDL_zero
      Src: /src/dav1d/examples/dav1dplay.c:312,1
    - Dst: SDL_PushEvent
      Src: /src/dav1d/examples/dav1dplay.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - rd_ctx
    - type
    argTypes:
    - Dav1dPlayRenderContext*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: dp_rd_ctx_post_event
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - SDL_PushEvent
    - SDL_zero
    linkageType: ''
    returnType: void
    signature: void dp_rd_ctx_post_event(Dav1dPlayRenderContext *rd_ctx, uint32_t
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_frame
      Src: /src/dav1d/examples/dav1dplay.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - rd_ctx
    - dav1d_pic
    argTypes:
    - Dav1dPlayRenderContext*
    - Dav1dPicture*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: dp_rd_ctx_update_with_dav1d_picture
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - update_frame
    linkageType: ''
    returnType: void
    signature: "void dp_rd_ctx_update_with_dav1d_picture(Dav1dPlayRenderContext *rd_ctx,\n
      \                                               Dav1dPicture *dav1d_pic)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dav1dplay.c:336,1
    - Dst: SDL_GetTicks
      Src: /src/dav1d/examples/dav1dplay.c:341,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dav1dplay.c:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - rd_ctx
    argTypes:
    - Dav1dPlayRenderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 351
    functionName: dp_rd_ctx_toggle_pause
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - SDL_UnlockMutex
    - SDL_GetTicks
    - SDL_LockMutex
    linkageType: ''
    returnType: void
    signature: void dp_rd_ctx_toggle_pause(Dav1dPlayRenderContext *rd_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dav1dplay.c:359,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dav1dplay.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rd_ctx
    argTypes:
    - Dav1dPlayRenderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: dp_rd_ctx_is_paused
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - SDL_UnlockMutex
    - SDL_LockMutex
    linkageType: ''
    returnType: int
    signature: int dp_rd_ctx_is_paused(Dav1dPlayRenderContext *rd_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dav1dplay.c:370,1
    - Dst: SDL_GetTicks
      Src: /src/dav1d/examples/dav1dplay.c:373,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dav1dplay.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - rd_ctx
    - sec
    argTypes:
    - Dav1dPlayRenderContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 376
    functionName: dp_rd_ctx_seek
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - SDL_UnlockMutex
    - SDL_GetTicks
    - SDL_LockMutex
    linkageType: ''
    returnType: void
    signature: void dp_rd_ctx_seek(Dav1dPlayRenderContext *rd_ctx, int sec)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dav1dplay.c:390,1
    - Dst: TS_TO_PTS
      Src: /src/dav1d/examples/dav1dplay.c:394,1
    - Dst: FRAME_OFFSET_TO_PTS
      Src: /src/dav1d/examples/dav1dplay.c:396,1
    - Dst: FRAME_OFFSET_TO_PTS
      Src: /src/dav1d/examples/dav1dplay.c:398,1
    - Dst: dav1d_flush
      Src: /src/dav1d/examples/dav1dplay.c:400,1
    - Dst: FRAME_OFFSET_TO_PTS
      Src: /src/dav1d/examples/dav1dplay.c:401,1
    - Dst: input_seek
      Src: /src/dav1d/examples/dav1dplay.c:405,1
    - Dst: input_read
      Src: /src/dav1d/examples/dav1dplay.c:410,1
    - Dst: TS_TO_PTS
      Src: /src/dav1d/examples/dav1dplay.c:412,1
    - Dst: dav1d_parse_sequence_header
      Src: /src/dav1d/examples/dav1dplay.c:413,1
    - Dst: TS_TO_PTS
      Src: /src/dav1d/examples/dav1dplay.c:422,1
    - Dst: decode_frame
      Src: /src/dav1d/examples/dav1dplay.c:425,1
    - Dst: TS_TO_PTS
      Src: /src/dav1d/examples/dav1dplay.c:428,1
    - Dst: destroy_pic
      Src: /src/dav1d/examples/dav1dplay.c:430,1
    - Dst: dp_fifo_push
      Src: /src/dav1d/examples/dav1dplay.c:432,1
    - Dst: dp_rd_ctx_post_event
      Src: /src/dav1d/examples/dav1dplay.c:434,1
    - Dst: SDL_GetTicks
      Src: /src/dav1d/examples/dav1dplay.c:446,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dav1dplay.c:452,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:454,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 4
    argNames:
    - rd_ctx
    - in_ctx
    - c
    - data
    argTypes:
    - Dav1dPlayRenderContext*
    - DemuxerContext*
    - Dav1dContext*
    - Dav1dData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 385
    functionDepth: 6
    functionLinenumber: 385
    functionLinenumberEnd: 456
    functionName: dp_rd_ctx_handle_seek
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - decode_frame
    - dav1d_flush
    - input_read
    - dp_fifo_push
    - fprintf
    - SDL_UnlockMutex
    - dp_rd_ctx_post_event
    - FRAME_OFFSET_TO_PTS
    - TS_TO_PTS
    - SDL_LockMutex
    - dav1d_parse_sequence_header
    - destroy_pic
    - input_seek
    - SDL_GetTicks
    linkageType: ''
    returnType: int
    signature: "int dp_rd_ctx_handle_seek(Dav1dPlayRenderContext *rd_ctx,\n                                 DemuxerContext
      *in_ctx,\n                                 Dav1dContext *c, Dav1dData *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dav1dplay.c:463,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dav1dplay.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rd_ctx
    argTypes:
    - Dav1dPlayRenderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: dp_rd_ctx_request_shutdown
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - SDL_UnlockMutex
    - SDL_LockMutex
    linkageType: ''
    returnType: void
    signature: void dp_rd_ctx_request_shutdown(Dav1dPlayRenderContext *rd_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dav1dplay.c:474,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dav1dplay.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rd_ctx
    argTypes:
    - Dav1dPlayRenderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 478
    functionName: dp_rd_ctx_should_terminate
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - SDL_UnlockMutex
    - SDL_LockMutex
    linkageType: ''
    returnType: int
    signature: int dp_rd_ctx_should_terminate(Dav1dPlayRenderContext *rd_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dav1dplay.c:487,1
    - Dst: SDL_GetTicks
      Src: /src/dav1d/examples/dav1dplay.c:489,1
    - Dst: SDL_Delay
      Src: /src/dav1d/examples/dav1dplay.c:505,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:507,1
    - Dst: render
      Src: /src/dav1d/examples/dav1dplay.c:510,1
    - Dst: SDL_GetTicks
      Src: /src/dav1d/examples/dav1dplay.c:513,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dav1dplay.c:515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - rd_ctx
    argTypes:
    - Dav1dPlayRenderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 516
    functionName: dp_rd_ctx_render
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - SDL_GetTicks
    - SDL_UnlockMutex
    - render
    - fprintf
    - SDL_Delay
    - SDL_LockMutex
    linkageType: ''
    returnType: void
    signature: void dp_rd_ctx_render(Dav1dPlayRenderContext *rd_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_send_data
      Src: /src/dav1d/examples/dav1dplay.c:523,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/examples/dav1dplay.c:528,1
    - Dst: dav1d_data_unref
      Src: /src/dav1d/examples/dav1dplay.c:529,1
    - Dst: calloc
      Src: /src/dav1d/examples/dav1dplay.c:533,1
    - Dst: dav1d_get_picture
      Src: /src/dav1d/examples/dav1dplay.c:535,1
    - Dst: free
      Src: /src/dav1d/examples/dav1dplay.c:538,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/examples/dav1dplay.c:544,1
    - Dst: input_read
      Src: /src/dav1d/examples/dav1dplay.c:547,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:549,1
    - Dst: strerror
      Src: /src/dav1d/examples/dav1dplay.c:550,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - p
    - c
    - data
    - in_ctx
    argTypes:
    - Dav1dPicture**
    - Dav1dContext*
    - Dav1dData*
    - DemuxerContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 518
    functionDepth: 13
    functionLinenumber: 518
    functionLinenumberEnd: 552
    functionName: decode_frame
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 4
    functionsReached:
    - calloc
    - dav1d_get_picture
    - dav1d_data_unref
    - free
    - input_read
    - dav1d_send_data
    - DAV1D_ERR
    - strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int decode_frame(Dav1dPicture **p, Dav1dContext *c,\n                        Dav1dData
      *data, DemuxerContext *in_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_picture_unref
      Src: /src/dav1d/examples/dav1dplay.c:557,1
    - Dst: free
      Src: /src/dav1d/examples/dav1dplay.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 554
    functionDepth: 4
    functionLinenumber: 554
    functionLinenumberEnd: 559
    functionName: destroy_pic
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 1
    functionsReached:
    - dav1d_picture_unref
    - free
    linkageType: ''
    returnType: void
    signature: void destroy_pic(void *a)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: input_open
      Src: /src/dav1d/examples/dav1dplay.c:575,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:579,1
    - Dst: dav1d_open
      Src: /src/dav1d/examples/dav1dplay.c:588,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:589,1
    - Dst: input_read
      Src: /src/dav1d/examples/dav1dplay.c:594,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:595,1
    - Dst: dp_rd_ctx_should_terminate
      Src: /src/dav1d/examples/dav1dplay.c:602,1
    - Dst: dp_rd_ctx_handle_seek
      Src: /src/dav1d/examples/dav1dplay.c:603,1
    - Dst: decode_frame
      Src: /src/dav1d/examples/dav1dplay.c:604,1
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dav1dplay.c:610,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dav1dplay.c:612,1
    - Dst: dp_fifo_push
      Src: /src/dav1d/examples/dav1dplay.c:614,1
    - Dst: dp_rd_ctx_post_event
      Src: /src/dav1d/examples/dav1dplay.c:616,1
    - Dst: dav1d_data_unref
      Src: /src/dav1d/examples/dav1dplay.c:623,1
    - Dst: dp_rd_ctx_should_terminate
      Src: /src/dav1d/examples/dav1dplay.c:636,1
    - Dst: calloc
      Src: /src/dav1d/examples/dav1dplay.c:638,1
    - Dst: dav1d_get_picture
      Src: /src/dav1d/examples/dav1dplay.c:639,1
    - Dst: free
      Src: /src/dav1d/examples/dav1dplay.c:641,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/examples/dav1dplay.c:642,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:643,1
    - Dst: strerror
      Src: /src/dav1d/examples/dav1dplay.c:644,1
    - Dst: dp_fifo_push
      Src: /src/dav1d/examples/dav1dplay.c:649,1
    - Dst: dp_rd_ctx_post_event
      Src: /src/dav1d/examples/dav1dplay.c:651,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/examples/dav1dplay.c:653,1
    - Dst: dp_rd_ctx_post_event
      Src: /src/dav1d/examples/dav1dplay.c:656,1
    - Dst: input_close
      Src: /src/dav1d/examples/dav1dplay.c:659,1
    - Dst: dav1d_close
      Src: /src/dav1d/examples/dav1dplay.c:661,1
    - Dst: DAV1D_ERR
      Src: /src/dav1d/examples/dav1dplay.c:663,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 562
    functionDepth: 13
    functionLinenumber: 562
    functionLinenumberEnd: 664
    functionName: decoder_thread_main
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 0
    functionsReached:
    - dav1d_data_unref
    - SDL_UnlockMutex
    - dp_rd_ctx_post_event
    - dp_fifo_push
    - decode_frame
    - free
    - DAV1D_ERR
    - input_open
    - calloc
    - dav1d_close
    - dav1d_get_picture
    - input_read
    - dp_rd_ctx_handle_seek
    - SDL_LockMutex
    - fprintf
    - dp_rd_ctx_should_terminate
    - dav1d_open
    - strerror
    - input_close
    linkageType: ''
    returnType: int
    signature: int decoder_thread_main(void *cookie)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: dav1d_version
      Src: /src/dav1d/examples/dav1dplay.c:671,1
    - Dst: strcmp
      Src: /src/dav1d/examples/dav1dplay.c:672,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:673,1
    - Dst: dp_rd_ctx_create
      Src: /src/dav1d/examples/dav1dplay.c:679,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:681,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:693,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dav1dplay.c:701,1
    - Dst: SDL_CreateThread
      Src: /src/dav1d/examples/dav1dplay.c:706,1
    - Dst: SDL_WaitEvent
      Src: /src/dav1d/examples/dav1dplay.c:715,1
    - Dst: SDL_PollEvent
      Src: /src/dav1d/examples/dav1dplay.c:716,1
    - Dst: dp_rd_ctx_request_shutdown
      Src: /src/dav1d/examples/dav1dplay.c:721,1
    - Dst: dp_fifo_flush
      Src: /src/dav1d/examples/dav1dplay.c:722,1
    - Dst: dp_rd_ctx_render
      Src: /src/dav1d/examples/dav1dplay.c:728,1
    - Dst: dp_rd_ctx_toggle_pause
      Src: /src/dav1d/examples/dav1dplay.c:733,1
    - Dst: dp_rd_ctx_request_shutdown
      Src: /src/dav1d/examples/dav1dplay.c:735,1
    - Dst: dp_fifo_flush
      Src: /src/dav1d/examples/dav1dplay.c:736,1
    - Dst: dp_rd_ctx_seek
      Src: /src/dav1d/examples/dav1dplay.c:742,1
    - Dst: dp_rd_ctx_seek
      Src: /src/dav1d/examples/dav1dplay.c:744,1
    - Dst: dp_fifo_flush
      Src: /src/dav1d/examples/dav1dplay.c:745,1
    - Dst: SDL_FlushEvent
      Src: /src/dav1d/examples/dav1dplay.c:746,1
    - Dst: SDL_GetTicks
      Src: /src/dav1d/examples/dav1dplay.c:753,1
    - Dst: dp_fifo_shift
      Src: /src/dav1d/examples/dav1dplay.c:756,1
    - Dst: dp_rd_ctx_should_terminate
      Src: /src/dav1d/examples/dav1dplay.c:758,1
    - Dst: dp_rd_ctx_update_with_dav1d_picture
      Src: /src/dav1d/examples/dav1dplay.c:759,1
    - Dst: destroy_pic
      Src: /src/dav1d/examples/dav1dplay.c:762,1
    - Dst: dp_rd_ctx_is_paused
      Src: /src/dav1d/examples/dav1dplay.c:767,1
    - Dst: dp_fifo_shift
      Src: /src/dav1d/examples/dav1dplay.c:769,1
    - Dst: dp_rd_ctx_should_terminate
      Src: /src/dav1d/examples/dav1dplay.c:771,1
    - Dst: dp_rd_ctx_update_with_dav1d_picture
      Src: /src/dav1d/examples/dav1dplay.c:772,1
    - Dst: dp_rd_ctx_render
      Src: /src/dav1d/examples/dav1dplay.c:773,1
    - Dst: destroy_pic
      Src: /src/dav1d/examples/dav1dplay.c:776,1
    - Dst: SDL_GetTicks
      Src: /src/dav1d/examples/dav1dplay.c:783,1
    - Dst: printf
      Src: /src/dav1d/examples/dav1dplay.c:784,1
    - Dst: SDL_WaitThread
      Src: /src/dav1d/examples/dav1dplay.c:788,1
    - Dst: dp_rd_ctx_destroy
      Src: /src/dav1d/examples/dav1dplay.c:789,1
    - Dst: SDL_Quit
      Src: /src/dav1d/examples/dav1dplay.c:790,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 97
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 666
    functionDepth: 7
    functionLinenumber: 666
    functionLinenumberEnd: 792
    functionName: main
    functionSourceFile: /src/dav1d/examples/dav1dplay.c
    functionUses: 2
    functionsReached:
    - SDL_FlushEvent
    - dp_rd_ctx_request_shutdown
    - SDL_WaitThread
    - dp_fifo_flush
    - dp_rd_ctx_is_paused
    - dav1d_version
    - dp_rd_ctx_seek
    - strcmp
    - dp_rd_ctx_create
    - SDL_PollEvent
    - SDL_CreateThread
    - dp_rd_ctx_destroy
    - SDL_Quit
    - dp_rd_ctx_update_with_dav1d_picture
    - printf
    - destroy_pic
    - SDL_GetTicks
    - fprintf
    - dp_rd_ctx_render
    - SDL_WaitEvent
    - dp_rd_ctx_toggle_pause
    - dp_rd_ctx_should_terminate
    - dp_fifo_shift
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dp_create_sdl_window
      Src: /src/dav1d/examples/dp_renderer_sdl.c:52,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_sdl.c:54,1
    - Dst: SDL_GetError
      Src: /src/dav1d/examples/dp_renderer_sdl.c:54,1
    - Dst: SDL_ShowCursor
      Src: /src/dav1d/examples/dp_renderer_sdl.c:57,1
    - Dst: malloc
      Src: /src/dav1d/examples/dp_renderer_sdl.c:60,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_sdl.c:62,1
    - Dst: SDL_CreateRenderer
      Src: /src/dav1d/examples/dp_renderer_sdl.c:68,1
    - Dst: SDL_SetHint
      Src: /src/dav1d/examples/dp_renderer_sdl.c:70,1
    - Dst: SDL_CreateMutex
      Src: /src/dav1d/examples/dp_renderer_sdl.c:73,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_sdl.c:75,1
    - Dst: SDL_GetError
      Src: /src/dav1d/examples/dp_renderer_sdl.c:75,1
    - Dst: free
      Src: /src/dav1d/examples/dp_renderer_sdl.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - settings
    argTypes:
    - Dav1dPlaySettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 83
    functionName: sdl_renderer_create
    functionSourceFile: /src/dav1d/examples/dp_renderer_sdl.c
    functionUses: 0
    functionsReached:
    - SDL_CreateMutex
    - free
    - malloc
    - SDL_CreateRenderer
    - SDL_SetHint
    - dp_create_sdl_window
    - SDL_ShowCursor
    - fprintf
    - SDL_GetError
    linkageType: ''
    returnType: void
    signature: void *sdl_renderer_create(const Dav1dPlaySettings *settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dp_renderer_sdl.c:88,1
    - Dst: SDL_DestroyTexture
      Src: /src/dav1d/examples/dp_renderer_sdl.c:90,1
    - Dst: SDL_DestroyRenderer
      Src: /src/dav1d/examples/dp_renderer_sdl.c:91,1
    - Dst: SDL_DestroyWindow
      Src: /src/dav1d/examples/dp_renderer_sdl.c:92,1
    - Dst: SDL_DestroyMutex
      Src: /src/dav1d/examples/dp_renderer_sdl.c:93,1
    - Dst: free
      Src: /src/dav1d/examples/dp_renderer_sdl.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - void*
    assertStmts:
    - condition: (rd_priv_ctx != NULL)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/dav1d/examples/dp_renderer_sdl.c
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: sdl_renderer_destroy
    functionSourceFile: /src/dav1d/examples/dp_renderer_sdl.c
    functionUses: 0
    functionsReached:
    - SDL_DestroyWindow
    - SDL_DestroyRenderer
    - free
    - assert
    - SDL_DestroyMutex
    - SDL_DestroyTexture
    linkageType: ''
    returnType: void
    signature: void sdl_renderer_destroy(void *cookie)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dp_renderer_sdl.c:100,1
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dp_renderer_sdl.c:102,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_sdl.c:105,1
    - Dst: SDL_RenderClear
      Src: /src/dav1d/examples/dp_renderer_sdl.c:110,1
    - Dst: SDL_RenderCopy
      Src: /src/dav1d/examples/dp_renderer_sdl.c:111,1
    - Dst: SDL_RenderPresent
      Src: /src/dav1d/examples/dp_renderer_sdl.c:112,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_sdl.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - cookie
    - settings
    argTypes:
    - void*
    - Dav1dPlaySettings*
    assertStmts:
    - condition: (rd_priv_ctx != NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/dav1d/examples/dp_renderer_sdl.c
    constantsTouched: []
    func_position:
      end: 115
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 115
    functionName: sdl_render
    functionSourceFile: /src/dav1d/examples/dp_renderer_sdl.c
    functionUses: 0
    functionsReached:
    - SDL_RenderClear
    - assert
    - SDL_RenderCopy
    - SDL_UnlockMutex
    - SDL_RenderPresent
    - SDL_LockMutex
    linkageType: ''
    returnType: void
    signature: void sdl_render(void *cookie, const Dav1dPlaySettings *settings)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dp_renderer_sdl.c:121,1
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dp_renderer_sdl.c:123,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_sdl.c:127,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_sdl.c:139,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_sdl.c:140,1
    - Dst: SDL_QueryTexture
      Src: /src/dav1d/examples/dp_renderer_sdl.c:145,1
    - Dst: SDL_DestroyTexture
      Src: /src/dav1d/examples/dp_renderer_sdl.c:147,1
    - Dst: SDL_CreateTexture
      Src: /src/dav1d/examples/dp_renderer_sdl.c:153,1
    - Dst: SDL_RenderSetLogicalSize
      Src: /src/dav1d/examples/dp_renderer_sdl.c:155,1
    - Dst: SDL_UpdateYUVTexture
      Src: /src/dav1d/examples/dp_renderer_sdl.c:158,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_sdl.c:165,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - cookie
    - dav1d_pic
    - settings
    argTypes:
    - void*
    - Dav1dPicture*
    - Dav1dPlaySettings*
    assertStmts:
    - condition: (rd_priv_ctx != NULL)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/dav1d/examples/dp_renderer_sdl.c
    constantsTouched: []
    func_position:
      end: 167
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 167
    functionName: sdl_update_texture
    functionSourceFile: /src/dav1d/examples/dp_renderer_sdl.c
    functionUses: 0
    functionsReached:
    - SDL_DestroyTexture
    - SDL_UpdateYUVTexture
    - SDL_QueryTexture
    - SDL_CreateTexture
    - assert
    - SDL_UnlockMutex
    - SDL_RenderSetLogicalSize
    - SDL_LockMutex
    - exit
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int sdl_update_texture(void *cookie, Dav1dPicture *dav1d_pic,\n                              const
      Dav1dPlaySettings *settings)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/dav1d/examples/dp_renderer.h:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: dp_get_renderer
    functionSourceFile: /src/dav1d/examples/dp_renderer.h
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: Dav1dPlayRenderInfo
    signature: Dav1dPlayRenderInfo *dp_get_renderer(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SDL_CreateWindow
      Src: /src/dav1d/examples/dp_renderer.h:141,1
    - Dst: SDL_SetWindowResizable
      Src: /src/dav1d/examples/dp_renderer.h:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - window_flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: dp_create_sdl_window
    functionSourceFile: /src/dav1d/examples/dp_renderer.h
    functionUses: 1
    functionsReached:
    - SDL_SetWindowResizable
    - SDL_CreateWindow
    linkageType: ''
    returnType: SDL_Window
    signature: SDL_Window *dp_create_sdl_window(int window_flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dp_fifo.c:49,1
    - Dst: malloc
      Src: /src/dav1d/examples/dp_fifo.c:53,1
    - Dst: SDL_CreateMutex
      Src: /src/dav1d/examples/dp_fifo.c:62,1
    - Dst: free
      Src: /src/dav1d/examples/dp_fifo.c:64,1
    - Dst: SDL_CreateCond
      Src: /src/dav1d/examples/dp_fifo.c:67,1
    - Dst: SDL_DestroyMutex
      Src: /src/dav1d/examples/dp_fifo.c:69,1
    - Dst: free
      Src: /src/dav1d/examples/dp_fifo.c:70,1
    - Dst: calloc
      Src: /src/dav1d/examples/dp_fifo.c:74,1
    - Dst: dp_fifo_destroy
      Src: /src/dav1d/examples/dp_fifo.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - size_t
    assertStmts:
    - condition: (capacity > 0)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/dav1d/examples/dp_fifo.c
    constantsTouched: []
    func_position:
      end: 81
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 81
    functionName: dp_fifo_create
    functionSourceFile: /src/dav1d/examples/dp_fifo.c
    functionUses: 1
    functionsReached:
    - SDL_CreateMutex
    - dp_fifo_destroy
    - calloc
    - free
    - assert
    - malloc
    - SDL_DestroyMutex
    - SDL_CreateCond
    linkageType: ''
    returnType: Dav1dPlayPtrFifo
    signature: Dav1dPlayPtrFifo *dp_fifo_create(size_t capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dp_fifo.c:86,1
    - Dst: SDL_DestroyMutex
      Src: /src/dav1d/examples/dp_fifo.c:87,1
    - Dst: SDL_DestroyCond
      Src: /src/dav1d/examples/dp_fifo.c:88,1
    - Dst: free
      Src: /src/dav1d/examples/dp_fifo.c:89,1
    - Dst: free
      Src: /src/dav1d/examples/dp_fifo.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fifo
    argTypes:
    - Dav1dPlayPtrFifo*
    assertStmts:
    - condition: (fifo->count == 0)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/dav1d/examples/dp_fifo.c
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: dp_fifo_destroy
    functionSourceFile: /src/dav1d/examples/dp_fifo.c
    functionUses: 3
    functionsReached:
    - SDL_DestroyMutex
    - SDL_DestroyCond
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void dp_fifo_destroy(Dav1dPlayPtrFifo *fifo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dp_fifo.c:96,1
    - Dst: SDL_CondWait
      Src: /src/dav1d/examples/dp_fifo.c:99,1
    - Dst: SDL_CondSignal
      Src: /src/dav1d/examples/dp_fifo.c:102,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_fifo.c:103,1
    - Dst: SDL_CondSignal
      Src: /src/dav1d/examples/dp_fifo.c:109,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_fifo.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - fifo
    - element
    argTypes:
    - Dav1dPlayPtrFifo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: dp_fifo_push
    functionSourceFile: /src/dav1d/examples/dp_fifo.c
    functionUses: 2
    functionsReached:
    - SDL_CondSignal
    - SDL_CondWait
    - SDL_UnlockMutex
    - SDL_LockMutex
    linkageType: ''
    returnType: void
    signature: void dp_fifo_push(Dav1dPlayPtrFifo *fifo, void *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - arr
    - len
    argTypes:
    - void**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: dp_fifo_array_shift
    functionSourceFile: /src/dav1d/examples/dp_fifo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *dp_fifo_array_shift(void **arr, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dp_fifo.c:125,1
    - Dst: SDL_CondWait
      Src: /src/dav1d/examples/dp_fifo.c:127,1
    - Dst: dp_fifo_array_shift
      Src: /src/dav1d/examples/dp_fifo.c:128,1
    - Dst: SDL_CondSignal
      Src: /src/dav1d/examples/dp_fifo.c:130,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_fifo.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fifo
    argTypes:
    - Dav1dPlayPtrFifo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: dp_fifo_shift
    functionSourceFile: /src/dav1d/examples/dp_fifo.c
    functionUses: 1
    functionsReached:
    - SDL_CondWait
    - SDL_UnlockMutex
    - dp_fifo_array_shift
    - SDL_CondSignal
    - SDL_LockMutex
    linkageType: ''
    returnType: void
    signature: void *dp_fifo_shift(Dav1dPlayPtrFifo *fifo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dp_fifo.c:137,1
    - Dst: SDL_CondSignal
      Src: /src/dav1d/examples/dp_fifo.c:140,1
    - Dst: SDL_CondWait
      Src: /src/dav1d/examples/dp_fifo.c:141,1
    - Dst: destroy_elem
      Src: /src/dav1d/examples/dp_fifo.c:144,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_fifo.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fifo
    argTypes:
    - Dav1dPlayPtrFifo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: dp_fifo_flush
    functionSourceFile: /src/dav1d/examples/dp_fifo.c
    functionUses: 1
    functionsReached:
    - SDL_CondWait
    - destroy_elem
    - SDL_UnlockMutex
    - SDL_LockMutex
    - SDL_CondSignal
    linkageType: ''
    returnType: void
    signature: void dp_fifo_flush(Dav1dPlayPtrFifo *fifo, void (*destroy_elem)(void
      *))
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dp_create_sdl_window
      Src: /src/dav1d/examples/dp_renderer_placebo.c:88,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:90,1
    - Dst: SDL_GetError
      Src: /src/dav1d/examples/dp_renderer_placebo.c:90,1
    - Dst: SDL_ShowCursor
      Src: /src/dav1d/examples/dp_renderer_placebo.c:94,1
    - Dst: calloc
      Src: /src/dav1d/examples/dp_renderer_placebo.c:98,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:100,1
    - Dst: pl_log_create
      Src: /src/dav1d/examples/dp_renderer_placebo.c:106,1
    - Dst: pl_log_params
      Src: /src/dav1d/examples/dp_renderer_placebo.c:106,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:115,1
    - Dst: free
      Src: /src/dav1d/examples/dp_renderer_placebo.c:116,1
    - Dst: SDL_CreateMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:121,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:123,1
    - Dst: SDL_GetError
      Src: /src/dav1d/examples/dp_renderer_placebo.c:123,1
    - Dst: pl_log_destroy
      Src: /src/dav1d/examples/dp_renderer_placebo.c:124,1
    - Dst: free
      Src: /src/dav1d/examples/dp_renderer_placebo.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - settings
    - window_flags
    argTypes:
    - Dav1dPlaySettings*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 130
    functionName: placebo_renderer_create_common
    functionSourceFile: /src/dav1d/examples/dp_renderer_placebo.c
    functionUses: 0
    functionsReached:
    - SDL_CreateMutex
    - calloc
    - pl_log_create
    - free
    - pl_log_params
    - dp_create_sdl_window
    - pl_log_destroy
    - SDL_ShowCursor
    - fprintf
    - SDL_GetError
    linkageType: ''
    returnType: Dav1dPlayRendererPrivateContext
    signature: "Dav1dPlayRendererPrivateContext *\n    placebo_renderer_create_common(const
      Dav1dPlaySettings *settings, int window_flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SDL_GL_SetAttribute
      Src: /src/dav1d/examples/dp_renderer_placebo.c:136,1
    - Dst: SDL_GL_SetAttribute
      Src: /src/dav1d/examples/dp_renderer_placebo.c:137,1
    - Dst: SDL_GL_SetAttribute
      Src: /src/dav1d/examples/dp_renderer_placebo.c:138,1
    - Dst: SDL_GL_SetAttribute
      Src: /src/dav1d/examples/dp_renderer_placebo.c:139,1
    - Dst: placebo_renderer_create_common
      Src: /src/dav1d/examples/dp_renderer_placebo.c:143,1
    - Dst: SDL_GL_CreateContext
      Src: /src/dav1d/examples/dp_renderer_placebo.c:149,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:151,1
    - Dst: SDL_GetError
      Src: /src/dav1d/examples/dp_renderer_placebo.c:151,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:152,1
    - Dst: SDL_GL_MakeCurrent
      Src: /src/dav1d/examples/dp_renderer_placebo.c:154,1
    - Dst: pl_opengl_create
      Src: /src/dav1d/examples/dp_renderer_placebo.c:156,1
    - Dst: pl_opengl_params
      Src: /src/dav1d/examples/dp_renderer_placebo.c:156,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:163,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:164,1
    - Dst: pl_opengl_create_swapchain
      Src: /src/dav1d/examples/dp_renderer_placebo.c:167,1
    - Dst: pl_opengl_swapchain_params
      Src: /src/dav1d/examples/dp_renderer_placebo.c:168,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:174,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:175,1
    - Dst: SDL_GL_GetDrawableSize
      Src: /src/dav1d/examples/dp_renderer_placebo.c:179,1
    - Dst: pl_swapchain_resize
      Src: /src/dav1d/examples/dp_renderer_placebo.c:181,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:182,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:183,1
    - Dst: printf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - settings
    argTypes:
    - Dav1dPlaySettings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 192
    functionName: placebo_renderer_create_gl
    functionSourceFile: /src/dav1d/examples/dp_renderer_placebo.c
    functionUses: 0
    functionsReached:
    - SDL_GL_GetDrawableSize
    - placebo_renderer_create_common
    - pl_opengl_params
    - SDL_GL_CreateContext
    - SDL_GL_MakeCurrent
    - SDL_GL_SetAttribute
    - pl_opengl_swapchain_params
    - pl_opengl_create
    - printf
    - pl_swapchain_resize
    - exit
    - fprintf
    - pl_opengl_create_swapchain
    - SDL_GetError
    linkageType: ''
    returnType: void
    signature: void *placebo_renderer_create_gl(const Dav1dPlaySettings *settings)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: placebo_renderer_create_common
      Src: /src/dav1d/examples/dp_renderer_placebo.c:202,1
    - Dst: SDL_Vulkan_GetInstanceExtensions
      Src: /src/dav1d/examples/dp_renderer_placebo.c:210,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:211,1
    - Dst: SDL_GetError
      Src: /src/dav1d/examples/dp_renderer_placebo.c:211,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:212,1
    - Dst: malloc
      Src: /src/dav1d/examples/dp_renderer_placebo.c:215,1
    - Dst: assert
      Src: /src/dav1d/examples/dp_renderer_placebo.c:216,1
    - Dst: SDL_Vulkan_GetInstanceExtensions
      Src: /src/dav1d/examples/dp_renderer_placebo.c:218,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:220,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:221,1
    - Dst: printf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:225,1
    - Dst: printf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:227,1
    - Dst: pl_vk_inst_create
      Src: /src/dav1d/examples/dp_renderer_placebo.c:230,1
    - Dst: pl_vk_inst_params
      Src: /src/dav1d/examples/dp_renderer_placebo.c:230,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:235,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:236,1
    - Dst: free
      Src: /src/dav1d/examples/dp_renderer_placebo.c:238,1
    - Dst: SDL_Vulkan_CreateSurface
      Src: /src/dav1d/examples/dp_renderer_placebo.c:240,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:241,1
    - Dst: SDL_GetError
      Src: /src/dav1d/examples/dp_renderer_placebo.c:241,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:242,1
    - Dst: pl_vulkan_create
      Src: /src/dav1d/examples/dp_renderer_placebo.c:245,1
    - Dst: pl_vulkan_params
      Src: /src/dav1d/examples/dp_renderer_placebo.c:245,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:251,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:252,1
    - Dst: pl_vulkan_create_swapchain
      Src: /src/dav1d/examples/dp_renderer_placebo.c:256,1
    - Dst: pl_vulkan_swapchain_params
      Src: /src/dav1d/examples/dp_renderer_placebo.c:257,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:263,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:264,1
    - Dst: pl_swapchain_resize
      Src: /src/dav1d/examples/dp_renderer_placebo.c:268,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:269,1
    - Dst: exit
      Src: /src/dav1d/examples/dp_renderer_placebo.c:270,1
    - Dst: printf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:276,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - settings
    argTypes:
    - Dav1dPlaySettings*
    assertStmts:
    - condition: (extensions)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/dav1d/examples/dp_renderer_placebo.c
    constantsTouched: []
    func_position:
      end: 279
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 279
    functionName: placebo_renderer_create_vk
    functionSourceFile: /src/dav1d/examples/dp_renderer_placebo.c
    functionUses: 0
    functionsReached:
    - placebo_renderer_create_common
    - pl_vk_inst_create
    - SDL_Vulkan_CreateSurface
    - free
    - pl_vulkan_create_swapchain
    - SDL_Vulkan_GetInstanceExtensions
    - pl_vk_inst_params
    - assert
    - malloc
    - pl_vulkan_create
    - pl_vulkan_swapchain_params
    - printf
    - pl_swapchain_resize
    - pl_vulkan_params
    - exit
    - fprintf
    - SDL_GetError
    linkageType: ''
    returnType: void
    signature: void *placebo_renderer_create_vk(const Dav1dPlaySettings *settings)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dp_renderer_placebo.c:285,1
    - Dst: pl_renderer_destroy
      Src: /src/dav1d/examples/dp_renderer_placebo.c:287,1
    - Dst: pl_swapchain_destroy
      Src: /src/dav1d/examples/dp_renderer_placebo.c:288,1
    - Dst: pl_tex_destroy
      Src: /src/dav1d/examples/dp_renderer_placebo.c:290,1
    - Dst: pl_vulkan_destroy
      Src: /src/dav1d/examples/dp_renderer_placebo.c:294,1
    - Dst: vkDestroySurfaceKHR
      Src: /src/dav1d/examples/dp_renderer_placebo.c:295,1
    - Dst: pl_vk_inst_destroy
      Src: /src/dav1d/examples/dp_renderer_placebo.c:296,1
    - Dst: pl_opengl_destroy
      Src: /src/dav1d/examples/dp_renderer_placebo.c:301,1
    - Dst: SDL_GL_DeleteContext
      Src: /src/dav1d/examples/dp_renderer_placebo.c:303,1
    - Dst: SDL_DestroyWindow
      Src: /src/dav1d/examples/dp_renderer_placebo.c:306,1
    - Dst: pl_log_destroy
      Src: /src/dav1d/examples/dp_renderer_placebo.c:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - void*
    assertStmts:
    - condition: (rd_priv_ctx != NULL)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/dav1d/examples/dp_renderer_placebo.c
    constantsTouched: []
    func_position:
      end: 309
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 309
    functionName: placebo_renderer_destroy
    functionSourceFile: /src/dav1d/examples/dp_renderer_placebo.c
    functionUses: 0
    functionsReached:
    - vkDestroySurfaceKHR
    - SDL_DestroyWindow
    - pl_swapchain_destroy
    - pl_opengl_destroy
    - assert
    - pl_vk_inst_destroy
    - SDL_GL_DeleteContext
    - pl_log_destroy
    - pl_tex_destroy
    - pl_vulkan_destroy
    - pl_renderer_destroy
    linkageType: ''
    returnType: void
    signature: void placebo_renderer_destroy(void *cookie)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dp_renderer_placebo.c:314,1
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:316,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:318,1
    - Dst: pl_renderer_create
      Src: /src/dav1d/examples/dp_renderer_placebo.c:324,1
    - Dst: pl_swapchain_start_frame
      Src: /src/dav1d/examples/dp_renderer_placebo.c:328,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:330,1
    - Dst: pl_frame_from_swapchain
      Src: /src/dav1d/examples/dp_renderer_placebo.c:335,1
    - Dst: pl_rect2df_aspect_copy
      Src: /src/dav1d/examples/dp_renderer_placebo.c:336,1
    - Dst: pl_frame_is_cropped
      Src: /src/dav1d/examples/dp_renderer_placebo.c:337,1
    - Dst: pl_tex_clear
      Src: /src/dav1d/examples/dp_renderer_placebo.c:338,1
    - Dst: pl_render_image
      Src: /src/dav1d/examples/dp_renderer_placebo.c:340,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:344,1
    - Dst: pl_tex_clear
      Src: /src/dav1d/examples/dp_renderer_placebo.c:345,1
    - Dst: pl_swapchain_submit_frame
      Src: /src/dav1d/examples/dp_renderer_placebo.c:348,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:350,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:351,1
    - Dst: pl_swapchain_swap_buffers
      Src: /src/dav1d/examples/dp_renderer_placebo.c:355,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - cookie
    - settings
    argTypes:
    - void*
    - Dav1dPlaySettings*
    assertStmts:
    - condition: (rd_priv_ctx != NULL)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/dav1d/examples/dp_renderer_placebo.c
    constantsTouched: []
    func_position:
      end: 357
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 357
    functionName: placebo_render
    functionSourceFile: /src/dav1d/examples/dp_renderer_placebo.c
    functionUses: 0
    functionsReached:
    - pl_swapchain_submit_frame
    - pl_render_image
    - pl_tex_clear
    - pl_frame_from_swapchain
    - pl_frame_is_cropped
    - pl_rect2df_aspect_copy
    - assert
    - pl_swapchain_start_frame
    - SDL_UnlockMutex
    - pl_swapchain_swap_buffers
    - pl_renderer_create
    - SDL_LockMutex
    - fprintf
    linkageType: ''
    returnType: void
    signature: void placebo_render(void *cookie, const Dav1dPlaySettings *settings)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dp_renderer_placebo.c:363,1
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:369,1
    - Dst: pl_upload_dav1dpicture
      Src: /src/dav1d/examples/dp_renderer_placebo.c:370,1
    - Dst: pl_dav1d_upload_params
      Src: /src/dav1d/examples/dp_renderer_placebo.c:370,1
    - Dst: fprintf
      Src: /src/dav1d/examples/dp_renderer_placebo.c:377,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - cookie
    - dav1d_pic
    - settings
    argTypes:
    - void*
    - Dav1dPicture*
    - Dav1dPlaySettings*
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/dav1d/examples/dp_renderer_placebo.c
    constantsTouched: []
    func_position:
      end: 383
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 383
    functionName: placebo_upload_image
    functionSourceFile: /src/dav1d/examples/dp_renderer_placebo.c
    functionUses: 0
    functionsReached:
    - pl_upload_dav1dpicture
    - assert
    - SDL_UnlockMutex
    - SDL_LockMutex
    - fprintf
    - pl_dav1d_upload_params
    linkageType: ''
    returnType: int
    signature: "int placebo_upload_image(void *cookie, Dav1dPicture *dav1d_pic,\n
      \                               const Dav1dPlaySettings *settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dp_renderer_placebo.c:388,1
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:390,1
    - Dst: pl_allocate_dav1dpicture
      Src: /src/dav1d/examples/dp_renderer_placebo.c:391,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pic
    - cookie
    argTypes:
    - Dav1dPicture*
    - void*
    assertStmts:
    - condition: (rd_priv_ctx != NULL)
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/dav1d/examples/dp_renderer_placebo.c
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: placebo_alloc_pic
    functionSourceFile: /src/dav1d/examples/dp_renderer_placebo.c
    functionUses: 0
    functionsReached:
    - pl_allocate_dav1dpicture
    - SDL_UnlockMutex
    - assert
    - SDL_LockMutex
    linkageType: ''
    returnType: int
    signature: int placebo_alloc_pic(Dav1dPicture *const pic, void *cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/dav1d/examples/dp_renderer_placebo.c:399,1
    - Dst: SDL_LockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:401,1
    - Dst: pl_release_dav1dpicture
      Src: /src/dav1d/examples/dp_renderer_placebo.c:402,1
    - Dst: SDL_UnlockMutex
      Src: /src/dav1d/examples/dp_renderer_placebo.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pic
    - cookie
    argTypes:
    - Dav1dPicture*
    - void*
    assertStmts:
    - condition: (rd_priv_ctx != NULL)
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/dav1d/examples/dp_renderer_placebo.c
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: placebo_release_pic
    functionSourceFile: /src/dav1d/examples/dp_renderer_placebo.c
    functionUses: 0
    functionsReached:
    - SDL_UnlockMutex
    - assert
    - pl_release_dav1dpicture
    - SDL_LockMutex
    linkageType: ''
    returnType: void
    signature: void placebo_release_pic(Dav1dPicture *pic, void *cookie)
Fuzzer filename: empty-file.cpp
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- src/wedge.h
- src/x86/cdef.h
- stdatomic.h
- src/scan.h
- src/loongarch/mc.h
- checkasm/utils.h
- dlfcn.h
- time.h
- src/tables.h
- src/loongarch/cdef.h
- altivec.h
- os/kernel/OS.h
- src/data.h
- src/intra_edge.h
- src/cpu.h
- limits.h
- SDL.h
- src/cdf.h
- xxhash.h
- stdarg.h
- data.h
- sys/auxv.h
- src/arm/ipred.h
- math.h
- headers.h
- src/ppc/cdef.h
- ctx.h
- dav1d/headers.h
- src/levels.h
- stdint.h
- src/riscv/ipred.h
- process.h
- input/demuxer.h
- src/lf_apply.h
- common.h
- src/x86/cpu.h
- src/ctx.h
- malloc.h
- machine/armreg.h
- src/ppc/utils.h
- src/cdef_apply.h
- intrin.h
- input/input.h
- src/fg_apply.h
- dav1d/data.h
- src/ipred.h
- src/riscv/mc.h
- libplacebo/opengl.h
- src/log.h
- src/arm/refmvs.h
- pthread_np.h
- src/loongarch/msac.h
- src/warpmv.h
- src/arm/cpu.h
- cli_config.h
- libplacebo/renderer.h
- output/muxer.h
- src/loongarch/itx.h
- src/pal.h
- common/validate.h
- output/output.h
- sanitizer/msan_interface.h
- stdio.h
- assert.h
- string.h
- src/x86/loopfilter.h
- vcs_version.h
- src/x86/filmgrain.h
- dp_renderer.h
- errno.h
- common/bitdepth.h
- asm-offsets.h
- src/qm.h
- pthread.h
- io.h
- src/ppc/loopfilter.h
- dav1d/picture.h
- src/arm/loopfilter.h
- dav1d_cli_parse.h
- signal.h
- src/loongarch/refmvs.h
- common/dump.h
- ctype.h
- src/thread.h
- dav1d/dav1d.h
- src/ipred_prepare.h
- src/thread_task.h
- common/intops.h
- tools/input/input.h
- tests/checkasm/internal.h
- unistd.h
- inttypes.h
- src/arm/filmgrain.h
- src/env.h
- src/riscv/cpu.h
- src/loongarch/looprestoration.h
- x86/pal.h
- src/x86/ipred.h
- mach/mach_time.h
- src/ppc/dav1d_types.h
- src/lr_apply.h
- input/parse.h
- src/riscv/itx.h
- src/ref.h
- riscv/pal.h
- picture.h
- SDL_opengl.h
- src/arm/asm-offsets.h
- dav1d/common.h
- src/loongarch/cpu.h
- src/picture.h
- libplacebo/utils/dav1d.h
- libplacebo/vulkan.h
- src/riscv/cdef.h
- src/x86/mc.h
- src/fg_apply_tmpl.c
- src/arm/itx.h
- src/itx.h
- version.h
- sys/sysctl.h
- src/mc.h
- src/looprestoration.h
- src/cdef.h
- sys/types.h
- src/loopfilter.h
- src/decode.h
- windows.h
- src/ppc/cpu.h
- src/arm/mc.h
- src/ppc/itx.h
- src/filmgrain.h
- err.h
- common/frame.h
- checkasm/test.h
- common/attributes.h
- checkasm/checkasm.h
- src/x86/refmvs.h
- src/x86/msac.h
- SDL_vulkan.h
- src/ppc/looprestoration.h
- src/thread_data.h
- stdbool.h
- src/dequant_tables.h
- src/loongarch/loopfilter.h
- crtdefs.h
- src/itx_1d.h
- libplacebo/config.h
- getopt.h
- sys/prctl.h
- src/arm/cdef.h
- src/mem.h
- src/x86/itx.h
- src/recon.h
- src/getbits.h
- src/ppc/mc.h
- src/internal.h
- dp_fifo.h
- stdlib.h
- config.h
- machine/cpu.h
- DAV1D_TEST_HEADER
- stddef.h
- src/refmvs.h
- src/lf_mask.h
- src/obu.h
- src/msac.h
- src/loongarch/ipred.h
- src/arm/msac.h
report: name
sources:
- function_names:
  - main
  source_file: /src/dav1d/tests/header_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_seed
  - get_seed
  - xor128_srand
  - xor128_rand
  - decode_frame
  - decode_rand
  - decode_all
  - seek
  - main
  - FRAME_OFFSET_TO_PTS
  - TS_TO_PTS
  source_file: /src/dav1d/tests/seek_stress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_RAND_SEEK
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/tests/seek_stress.c
      type_or_value: '3'
    - item_type: preproc_def
      name: NUM_REL_SEEK
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/dav1d/tests/seek_stress.c
      type_or_value: '4'
    - item_type: preproc_def
      name: NUM_END_SEEK
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/dav1d/tests/seek_stress.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - gen_mv
  - ARRAY_SIZE
  - get_min_mv_val
  - gen_tmv
  - get_ref2cur
  - get_seqlen
  - init_rp_ref
  - check_load_tmvs
  - check_save_tmvs
  - check_splat_mv
  - checkasm_check_refmvs
  source_file: /src/dav1d/tests/checkasm/refmvs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: rmv
        type: refmvs_block
      - name: u32[3]
        type: uint32_t
      item_type: union
      name: ALIGN(tmp, 16)
      pos:
        line_end: 327
        line_start: 324
        source_file: /src/dav1d/tests/checkasm/refmvs.c
- function_names:
  - decl_check_bitfns
  - checkasm_check_pixel
  - checkasm_check_coef
  - PIXEL_RECT
  source_file: /src/dav1d/tests/checkasm/internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: rnd
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/dav1d/tests/checkasm/internal.h
      type_or_value: checkasm_rand
    - item_type: preproc_def
      name: checkasm_check_impl_pixel
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/dav1d/tests/checkasm/internal.h
      type_or_value: checkasm_check_impl(PIXEL_TYPE)
    - item_type: preproc_def
      name: CLEAR_PIXEL_RECT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/dav1d/tests/checkasm/internal.h
      type_or_value: CLEAR_BUF_RECT
    - item_type: preproc_def
      name: checkasm_check_pixel_padded
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/dav1d/tests/checkasm/internal.h
      type_or_value: checkasm_check_rect_padded
    - item_type: preproc_def
      name: checkasm_check_pixel_padded_align
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/dav1d/tests/checkasm/internal.h
      type_or_value: checkasm_check_rect_padded_align
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_cpu_flags
  - main
  source_file: /src/dav1d/tests/checkasm/checkasm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - to_binary
  - init_tmp
  - check_cdef_filter
  - declare_func
  - check_cdef_direction
  - bitfn
  source_file: /src/dav1d/tests/checkasm/cdef.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - checkasm_check_entry
  - checkasm_check_entry
  - check_gen_grny
  - check_gen_grnuv
  - ALIGN_STK_64
  source_file: /src/dav1d/tests/checkasm/filmgrain.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNIT_TEST
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/dav1d/tests/checkasm/filmgrain.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - gen_z2_max_wh
  - check_intra_pred
  source_file: /src/dav1d/tests/checkasm/ipred.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mc_h_next
  - check_mc
  - generate_mct_input
  source_file: /src/dav1d/tests/checkasm/mc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_lpf_border
  - check_lpf_sb
  - bitfn
  source_file: /src/dav1d/tests/checkasm/loopfilter.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - randomize_cdf
  - msac_cmp
  - msac_dump
  - CHECK_SYMBOL_ADAPT
  source_file: /src/dav1d/tests/checkasm/msac.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/tests/checkasm/msac.c
      type_or_value: '128'
    structs:
    - fields:
      - name: decode_symbol_adapt4
        type: decode_symbol_adapt_fn
      - name: decode_symbol_adapt8
        type: decode_symbol_adapt_fn
      - name: decode_symbol_adapt16
        type: decode_symbol_adapt_fn
      - name: decode_bool_adapt
        type: decode_adapt_fn
      - name: decode_bool_equi
        type: decode_bool_equi_fn
      - name: decode_bool
        type: decode_bool_fn
      - name: decode_hi_tok
        type: decode_adapt_fn
      item_type: struct
      name: MsacDSPContext
      pos:
        line_end: 52
        line_start: 44
        source_file: /src/dav1d/tests/checkasm/msac.c
    typedefs:
    - item_type: typedef
      name: "(*decode_symbol_adapt_fn)(MsacContext *s, uint16_t *cdf,\n                                           size_t
        n_symbols)"
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/dav1d/tests/checkasm/msac.c
      type: unsigned
    - item_type: typedef
      name: (*decode_adapt_fn)(MsacContext *s, uint16_t *cdf)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/dav1d/tests/checkasm/msac.c
      type: unsigned
    - item_type: typedef
      name: (*decode_bool_equi_fn)(MsacContext *s)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/dav1d/tests/checkasm/msac.c
      type: unsigned
    - item_type: typedef
      name: (*decode_bool_fn)(MsacContext *s, unsigned f)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/dav1d/tests/checkasm/msac.c
      type: unsigned
    union: []
- function_names: []
  source_file: /src/dav1d/tests/checkasm/pal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fdct_1d
  - fadst_1d
  - fwht4_1d
  - copy_subcoefs
  - ftx
  - check_itxfm_add
  - bitfn
  source_file: /src/dav1d/tests/checkasm/itx.c
  types:
    enum:
    - enumerators:
      - name: DCT
      - name: IDENTITY
      - name: FLIPADST
      - name: ADST
      - name: WHT
      item_type: enum
      name: Tx1D
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/dav1d/tests/checkasm/itx.c
    preproc_defs:
    - item_type: preproc_def
      name: M_PI
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/dav1d/tests/checkasm/itx.c
      type_or_value: '3.14159265358979323846'
    - item_type: preproc_def
      name: M_SQRT1_2
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/dav1d/tests/checkasm/itx.c
      type_or_value: '0.707106781186547524401'
    structs: []
    typedefs: []
    union: []
- function_names:
  - to_binary
  - init_tmp
  - check_wiener
  - declare_func
  - check_sgr
  - bitfn
  source_file: /src/dav1d/tests/checkasm/looprestoration.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: name[4]
        type: char
      - name: idx
        type: uint8_t
      item_type: struct
      name: "sgr_data[3] = {\n        { \"5x5\", 14 },\n        { \"3x3\", 10 },\n
        \       { \"mix\",  0 },\n    }"
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/dav1d/tests/checkasm/looprestoration.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/tools/dav1d_cli_parse.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*outputfile'
        type: char
      - name: '*inputfile'
        type: char
      - name: '*demuxer'
        type: char
      - name: '*muxer'
        type: char
      - name: '*frametimes'
        type: char
      - name: '*verify'
        type: char
      - name: limit
        type: unsigned
      - name: quiet
        type: int
      - name: realtime
        type: "enum {\n        REALTIME_DISABLE = 0,\n        REALTIME_INPUT,\n        REALTIME_CUSTOM,\n
          \   }"
      - name: realtime_fps
        type: double
      - name: realtime_cache
        type: unsigned
      - name: neg_stride
        type: int
      item_type: struct
      name: CLISettings
      pos:
        line_end: 49
        line_start: 32
        source_file: /src/dav1d/tools/dav1d_cli_parse.h
    typedefs: []
    union: []
- function_names:
  - usage
  - error
  - parse_unsigned
  - parse_optional_fraction
  - ARRAY_SIZE
  - parse_enum
  - parse
  source_file: /src/dav1d/tools/dav1d_cli_parse.c
  types:
    enum:
    - enumerators:
      - name: X86_CPU_MASK_SSE2
        value: DAV1D_X86_CPU_FLAG_SSE2
      - name: X86_CPU_MASK_SSSE3
        value: DAV1D_X86_CPU_FLAG_SSSE3     | X86_CPU_MASK_SSE2
      - name: X86_CPU_MASK_SSE41
        value: DAV1D_X86_CPU_FLAG_SSE41     | X86_CPU_MASK_SSSE3
      - name: X86_CPU_MASK_AVX2
        value: DAV1D_X86_CPU_FLAG_AVX2      | X86_CPU_MASK_SSE41
      - name: X86_CPU_MASK_AVX512ICL
        value: DAV1D_X86_CPU_FLAG_AVX512ICL | X86_CPU_MASK_AVX2
      item_type: enum
      name: CpuMask
      pos:
        line_end: 216
        line_start: 210
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
    - enumerators:
      - name: ARM_CPU_MASK_NEON
        value: DAV1D_ARM_CPU_FLAG_NEON
      - name: ARM_CPU_MASK_DOTPROD
        value: DAV1D_ARM_CPU_FLAG_DOTPROD | ARM_CPU_MASK_NEON
      - name: ARM_CPU_MASK_I8MM
        value: DAV1D_ARM_CPU_FLAG_I8MM    | ARM_CPU_MASK_DOTPROD
      - name: ARM_CPU_MASK_SVE2
        value: DAV1D_ARM_CPU_FLAG_SVE2    | ARM_CPU_MASK_SVE | ARM_CPU_MASK_DOTPROD
      - name: ARM_CPU_MASK_SVE
        value: DAV1D_ARM_CPU_FLAG_SVE     | ARM_CPU_MASK_NEON
      item_type: enum
      name: CpuMask
      pos:
        line_end: 228
        line_start: 218
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
    - enumerators:
      - name: PPC_CPU_MASK_VSX
        value: DAV1D_PPC_CPU_FLAG_VSX
      - name: PPC_CPU_MASK_PWR9
        value: DAV1D_PPC_CPU_FLAG_VSX | DAV1D_PPC_CPU_FLAG_PWR9
      item_type: enum
      name: CpuMask
      pos:
        line_end: 235
        line_start: 232
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
    preproc_defs:
    - item_type: preproc_def
      name: AVAILABLE_MUXERS
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
      type_or_value: '"''md5'', ''xxh3'', ''yuv'', ''yuv4mpeg2'' or ''null''"'
    - item_type: preproc_def
      name: AVAILABLE_MUXERS
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
      type_or_value: '"''md5'', ''yuv'', ''yuv4mpeg2'' or ''null''"'
    - item_type: preproc_def
      name: ALLOWED_CPU_MASKS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
      type_or_value: '", ''neon'', ''dotprod'' or ''i8mm''"'
    - item_type: preproc_def
      name: ALLOWED_CPU_MASKS
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
      type_or_value: '", ''lsx'' or ''lasx''"'
    - item_type: preproc_def
      name: ALLOWED_CPU_MASKS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
      type_or_value: '", ''vsx'' or ''pwr9''"'
    - item_type: preproc_def
      name: ALLOWED_CPU_MASKS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
      type_or_value: '" or ''rvv''"'
    - item_type: preproc_def
      name: ALLOWED_CPU_MASKS
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
      type_or_value: '", ''sse2'', ''ssse3'', ''sse41'', ''avx2'' or ''avx512icl''"'
    - item_type: preproc_def
      name: ALLOWED_CPU_MASKS
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
      type_or_value: '"not yet implemented for this architecture"'
    structs:
    - fields:
      - name: '*str'
        type: char
      - name: val
        type: int
      item_type: struct
      name: EnumParseTable
      pos:
        line_end: 207
        line_start: 204
        source_file: /src/dav1d/tools/dav1d_cli_parse.c
    typedefs: []
    union: []
- function_names:
  - get_time_nanos
  - sleep_nanos
  - synchronize
  - print_stats
  - picture_alloc
  - picture_release
  - signal_handler
  - main
  source_file: /src/dav1d/tools/dav1d.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/tools/output/muxer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: priv_data_size
        type: int
      - name: '*name'
        type: char
      - name: '*extension'
        type: char
      - name: "(*write_header)(MuxerPriv *ctx, const char *filename,\n                        const
          Dav1dPictureParameters *p, const unsigned fps[2])"
        type: int
      - name: (*write_picture)(MuxerPriv *ctx, Dav1dPicture *p)
        type: int
      - name: (*write_trailer)(MuxerPriv *ctx)
        type: void
      - name: (*verify)(MuxerPriv *ctx, const char *hash_string)
        type: int
      item_type: struct
      name: Muxer
      pos:
        line_end: 49
        line_start: 33
        source_file: /src/dav1d/tools/output/muxer.h
    typedefs:
    - item_type: typedef
      name: MuxerPriv
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/dav1d/tools/output/muxer.h
      type: MuxerPriv
    union: []
- function_names: []
  source_file: /src/dav1d/tools/output/output.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: MuxerContext
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/dav1d/tools/output/output.h
      type: MuxerContext
    union: []
- function_names:
  - xxh3_open
  - xxh3_write
  - xxh3_close
  - xxh3_verify
  source_file: /src/dav1d/tools/output/xxhash.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* state'
        type: XXH3_state_t
      - name: '*f'
        type: FILE
      item_type: struct
      name: MuxerPriv
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/dav1d/tools/output/xxhash.c
    typedefs: []
    union: []
- function_names:
  - yuv_open
  - yuv_write
  - yuv_close
  source_file: /src/dav1d/tools/output/yuv.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*f'
        type: FILE
      item_type: struct
      name: MuxerPriv
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/dav1d/tools/output/yuv.c
    typedefs: []
    union: []
- function_names:
  - find_extension
  - output_open
  - safe_strncat
  - assemble_field
  - assemble_filename
  - output_write
  - output_close
  - output_verify
  source_file: /src/dav1d/tools/output/output.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: MuxerPriv
      - name: '*impl'
        type: Muxer
      - name: one_file_per_frame
        type: int
      - name: fps[2]
        type: unsigned
      - name: '*filename'
        type: char
      - name: framenum
        type: int
      - name: priv_data[]
        type: uint64_t
      item_type: struct
      name: MuxerContext
      pos:
        line_end: 49
        line_start: 41
        source_file: /src/dav1d/tools/output/output.c
    typedefs: []
    union: []
- function_names:
  - y4m2_open
  - write_header
  - y4m2_write
  - y4m2_close
  source_file: /src/dav1d/tools/output/y4m2.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*f'
        type: FILE
      - name: first
        type: int
      - name: fps[2]
        type: unsigned
      item_type: struct
      name: MuxerPriv
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/dav1d/tools/output/y4m2.c
    typedefs: []
    union: []
- function_names:
  - null_write
  source_file: /src/dav1d/tools/output/null.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: NullOutputContext
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/dav1d/tools/output/null.c
      type: MuxerPriv
    union: []
- function_names:
  - NE2LE_32
  - NE2LE_64
  - NE2LE_32
  - NE2LE_64
  - md5_open
  - leftrotate
  - F
  - G
  - H
  - I
  - md5_body
  - md5_update
  - md5_write
  - md5_finish
  - md5_close
  - md5_verify
  source_file: /src/dav1d/tools/output/md5.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: abcd[4]
        type: uint32_t
      - name: len
        type: uint64_t
      - name: '*f'
        type: FILE
      item_type: struct
      name: MuxerPriv
      pos:
        line_end: 89
        line_start: 77
        source_file: /src/dav1d/tools/output/md5.c
    typedefs: []
    union: []
- function_names:
  - _vwarnx
  - warnx
  - gcd
  - permute_args
  - parse_long_options
  - IDENTICAL_INTERPRETATION
  - getopt_internal
  - getopt
  - getopt_long
  - getopt_long_only
  source_file: /src/dav1d/tools/compat/getopt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: optreset
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/dav1d/tools/compat/getopt.c
      type_or_value: __mingw_optreset
    - item_type: preproc_def
      name: PRINT_ERROR
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/dav1d/tools/compat/getopt.c
      type_or_value: ((opterr) && (*options != ':'))
    - item_type: preproc_def
      name: FLAG_PERMUTE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/dav1d/tools/compat/getopt.c
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: FLAG_ALLARGS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/dav1d/tools/compat/getopt.c
      type_or_value: "0x02\t"
    - item_type: preproc_def
      name: FLAG_LONGONLY
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/dav1d/tools/compat/getopt.c
      type_or_value: "0x04\t"
    - item_type: preproc_def
      name: BADCH
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/dav1d/tools/compat/getopt.c
      type_or_value: (int)'?'
    - item_type: preproc_def
      name: BADARG
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/dav1d/tools/compat/getopt.c
      type_or_value: '((*options == '':'') ? (int)'':'' : (int)''?'')'
    - item_type: preproc_def
      name: INORDER
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/dav1d/tools/compat/getopt.c
      type_or_value: (int)1
    - item_type: preproc_def
      name: EMSG
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/dav1d/tools/compat/getopt.c
      type_or_value: '""'
    - item_type: preproc_def
      name: __progname
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/dav1d/tools/compat/getopt.c
      type_or_value: __argv[0]
    structs: []
    typedefs: []
    union: []
- function_names:
  - section5_probe
  - section5_open
  - section5_read
  - section5_close
  source_file: /src/dav1d/tools/input/section5.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROBE_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/dav1d/tools/input/section5.c
      type_or_value: '2048'
    structs:
    - fields:
      - name: '*f'
        type: FILE
      item_type: struct
      name: DemuxerPriv
      pos:
        line_end: 86
        line_start: 84
        source_file: /src/dav1d/tools/input/section5.c
    typedefs: []
    union: []
- function_names:
  - ivf_probe
  - rl32
  - rl64
  - ivf_open
  - ivf_read_header
  - ivf_read
  - ivf_seek
  - ivf_close
  source_file: /src/dav1d/tools/input/ivf.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*f'
        type: FILE
      - name: broken
        type: int
      - name: timebase
        type: double
      - name: last_ts
        type: uint64_t
      - name: step
        type: uint64_t
      item_type: struct
      name: DemuxerPriv
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/dav1d/tools/input/ivf.c
    typedefs: []
    union: []
- function_names:
  - annexb_probe
  - annexb_open
  - annexb_read
  - annexb_close
  source_file: /src/dav1d/tools/input/annexb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROBE_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/dav1d/tools/input/annexb.c
      type_or_value: '2048'
    structs:
    - fields:
      - name: '*f'
        type: FILE
      - name: temporal_unit_size
        type: size_t
      - name: frame_unit_size
        type: size_t
      item_type: struct
      name: DemuxerPriv
      pos:
        line_end: 125
        line_start: 121
        source_file: /src/dav1d/tools/input/annexb.c
    typedefs: []
    union: []
- function_names:
  - input_open
  - input_read
  - input_seek
  - input_close
  source_file: /src/dav1d/tools/input/input.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: DemuxerPriv
      - name: '*impl'
        type: Demuxer
      - name: priv_data[]
        type: uint64_t
      item_type: struct
      name: DemuxerContext
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/dav1d/tools/input/input.c
    typedefs: []
    union: []
- function_names:
  - leb128
  - leb
  - parse_obu_header
  source_file: /src/dav1d/tools/input/parse.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/tools/input/demuxer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: priv_data_size
        type: int
      - name: '*name'
        type: char
      - name: probe_sz
        type: int
      - name: (*probe)(const uint8_t *data)
        type: int
      - name: "(*open)(DemuxerPriv *ctx, const char *filename,\n                unsigned
          fps[2], unsigned *num_frames, unsigned timebase[2])"
        type: int
      - name: (*read)(DemuxerPriv *ctx, Dav1dData *data)
        type: int
      - name: (*seek)(DemuxerPriv *ctx, uint64_t pts)
        type: int
      - name: (*close)(DemuxerPriv *ctx)
        type: void
      item_type: struct
      name: Demuxer
      pos:
        line_end: 43
        line_start: 33
        source_file: /src/dav1d/tools/input/demuxer.h
    typedefs:
    - item_type: typedef
      name: DemuxerPriv
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/dav1d/tools/input/demuxer.h
      type: DemuxerPriv
    union: []
- function_names: []
  source_file: /src/dav1d/tools/input/input.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: DemuxerContext
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/dav1d/tools/input/input.h
      type: DemuxerContext
    union: []
- function_names:
  - decl_loopfilter_sb_fn
  source_file: /src/dav1d/src/loopfilter.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: loop_filter_sb[2][2]
        type: loopfilter_sb_fn
      item_type: struct
      name: Dav1dLoopFilterDSPContext
      pos:
        line_end: 52
        line_start: 44
        source_file: /src/dav1d/src/loopfilter.h
    typedefs:
    - item_type: typedef
      name: (*loopfilter_sb_fn)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/dav1d/src/loopfilter.h
      type: decl_loopfilter_sb_fn
    union: []
- function_names:
  - INTRA_EDGE_SPLIT
  source_file: /src/dav1d/src/intra_edge.h
  types:
    enum:
    - enumerators:
      - name: EDGE_I444_TOP_HAS_RIGHT
        value: 1 << 0
      - name: EDGE_I420_TOP_HAS_RIGHT
        value: 1 << 2
      - name: EDGE_I422_TOP_HAS_RIGHT
        value: 1 << 1
      - name: EDGE_I444_LEFT_HAS_BOTTOM
        value: 1 << 3
      - name: EDGE_I422_LEFT_HAS_BOTTOM
        value: 1 << 4
      - name: EDGE_I420_LEFT_HAS_BOTTOM
        value: 1 << 5
      - name: EDGE_ALL_TOP_HAS_RIGHT
        value: "EDGE_I444_TOP_HAS_RIGHT |\n                                EDGE_I422_TOP_HAS_RIGHT
          |\n                                EDGE_I420_TOP_HAS_RIGHT"
      - name: EDGE_ALL_LEFT_HAS_BOTTOM
        value: "EDGE_I444_LEFT_HAS_BOTTOM |\n                                EDGE_I422_LEFT_HAS_BOTTOM
          |\n                                EDGE_I420_LEFT_HAS_BOTTOM"
      - name: EDGE_ALL_TR_AND_BL
        value: "EDGE_ALL_TOP_HAS_RIGHT |\n                                EDGE_ALL_LEFT_HAS_BOTTOM"
      item_type: enum
      name: EdgeFlags
      pos:
        line_end: 47
        line_start: 32
        source_file: /src/dav1d/src/intra_edge.h
    preproc_defs: []
    structs:
    - fields:
      - name: o
        type: uint8_t
      item_type: struct
      name: EdgeNode
      pos:
        line_end: 54
        line_start: 52
        source_file: /src/dav1d/src/intra_edge.h
    - fields:
      - name: node
        type: EdgeNode
      - name: split[3]
        type: uint8_t
      item_type: struct
      name: EdgeTip
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/dav1d/src/intra_edge.h
    - fields:
      - name: node
        type: EdgeNode
      - name: h4
        type: uint8_t
      - name: split_offset[4]
        type: uint16_t
      item_type: struct
      name: EdgeBranch
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/dav1d/src/intra_edge.h
    typedefs: []
    union: []
- function_names:
  - wiener_filter_h
  - wiener_filter_v
  - wiener_filter_hv
  - wiener_c
  - rotate
  - rotate5_x2
  - sgr_box3_row_h
  - sgr_box5_row_h
  - sgr_box35_row_h
  - sgr_box3_row_v
  - sgr_box5_row_v
  - sgr_calc_row_ab
  - sgr_box3_vert
  - sgr_box5_vert
  - sgr_box3_hv
  - sgr_finish_filter_row1
  - EIGHT_NEIGHBORS
  - sgr_finish_filter2
  - SIX_NEIGHBORS
  - sgr_weighted_row1
  - sgr_weighted2
  - sgr_finish1
  - sgr_finish2
  - sgr_finish_mix
  source_file: /src/dav1d/src/looprestoration_tmpl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REST_UNIT_STRIDE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/src/looprestoration_tmpl.c
      type_or_value: (390)
    - item_type: preproc_def
      name: FILTER_OUT_STRIDE
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/dav1d/src/looprestoration_tmpl.c
      type_or_value: (384)
    - item_type: preproc_def
      name: BUF_STRIDE
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/dav1d/src/looprestoration_tmpl.c
      type_or_value: (384 + 16)
    structs: []
    typedefs: []
    union: []
- function_names:
  - default_free_callback
  - dav1d_ref_create
  - pool_free_callback
  - dav1d_ref_create_using_pool
  - dav1d_ref_dec
  source_file: /src/dav1d/src/ref.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/scan.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_tbl
  - init_internal
  - dav1d_init_last_nonzero_col_from_eob_tables
  source_file: /src/dav1d/src/scan.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - backup2lines
  - backup2x8
  - adjust_strength
  - bytefn
  source_file: /src/dav1d/src/cdef_apply_tmpl.c
  types:
    enum:
    - enumerators:
      - name: BACKUP_2X8_Y
        value: 1 << 0
      - name: BACKUP_2X8_UV
        value: 1 << 1
      item_type: enum
      name: Backup2x8Flags
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/dav1d/src/cdef_apply_tmpl.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - add_spatial_candidate
  - scan_row
  - scan_col
  - mv_projection
  - add_temporal_candidate
  - add_compound_extended_candidate
  - add_single_extended_candidate
  - dav1d_refmvs_find
  - EXCHANGE
  - dav1d_refmvs_tile_sbrow_init
  - EXCHANGE
  - load_tmvs_c
  - save_tmvs_c
  - dav1d_refmvs_init_frame
  - splat_mv_c
  - dav1d_refmvs_dsp_init
  source_file: /src/dav1d/src/refmvs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CLIP
  - inv_dct4_1d_internal_c
  - inv_dct4_1d_c
  - inv_dct8_1d_internal_c
  - inv_dct8_1d_c
  - inv_dct16_1d_internal_c
  - inv_dct16_1d_c
  - inv_dct32_1d_internal_c
  - inv_dct32_1d_c
  - inv_dct64_1d_c
  - inv_adst4_1d_internal_c
  - inv_adst8_1d_internal_c
  - inv_adst16_1d_internal_c
  - inv_adst_1d
  - inv_identity4_1d_c
  - inv_identity8_1d_c
  - inv_identity16_1d_c
  - inv_identity32_1d_c
  - dav1d_inv_wht4_1d_c
  source_file: /src/dav1d/src/itx_1d.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_edges
  - PTR_OFFSET
  - init_mode_node
  - dav1d_init_intra_edge_tree
  source_file: /src/dav1d/src/intra_edge.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*nwc[3 /* 64x64, 32x32, 16x16 */]'
        type: EdgeBranch
      - name: '*nt'
        type: EdgeTip
      item_type: struct
      name: ModeSelMem
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/dav1d/src/intra_edge.c
    - fields:
      - name: branch_sb128[1 + 4 + 16 + 64]
        type: EdgeBranch
      - name: tip_sb128[256]
        type: EdgeTip
      - name: branch_sb64[1 + 4 + 16]
        type: EdgeBranch
      - name: tip_sb64[64]
        type: EdgeTip
      item_type: struct
      name: ALIGN(nodes, 16)
      pos:
        line_end: 48
        line_start: 43
        source_file: /src/dav1d/src/intra_edge.c
    typedefs: []
    union: []
- function_names:
  - dav1d_memset_likely_pow2
  - set_ctx1
  - set_ctx2
  - set_ctx4
  - set_ctx8
  - set_ctx16
  - set_ctx32
  - case_set
  - case_set_upto16
  source_file: /src/dav1d/src/ctx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*dav1d_memset_pow2_fn)(void *ptr, int value)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/dav1d/src/ctx.h
      type: void
    union:
    - fields:
      - name: u64
        type: uint64_t
      - name: u8[8]
        type: uint8_t
      item_type: union
      name: alias64
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/dav1d/src/ctx.h
    - fields:
      - name: u32
        type: uint32_t
      - name: u8[4]
        type: uint8_t
      item_type: union
      name: alias32
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/dav1d/src/ctx.h
    - fields:
      - name: u16
        type: uint16_t
      - name: u8[2]
        type: uint8_t
      item_type: union
      name: alias16
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/dav1d/src/ctx.h
    - fields:
      - name: u8
        type: uint8_t
      item_type: union
      name: alias8
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/dav1d/src/ctx.h
- function_names:
  - decomp_tx
  - set_ctx
  - mask_edges_inter
  - mask_edges_intra
  - mask_edges_chroma
  - dav1d_create_lf_mask_intra
  - dav1d_create_lf_mask_inter
  - dav1d_calc_eih
  - calc_lf_value
  - calc_lf_value_chroma
  - dav1d_calc_lf_values
  source_file: /src/dav1d/src/lf_mask.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_load_tmvs_fn
  - decl_save_tmvs_fn
  - decl_splat_mv_fn
  - dav1d_refmvs_save_tmvs
  source_file: /src/dav1d/src/refmvs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVALID_MV
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/dav1d/src/refmvs.h
      type_or_value: '0x80008000'
    - item_type: preproc_def
      name: INVALID_REF2CUR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/dav1d/src/refmvs.h
      type_or_value: (-32)
    structs:
    - fields:
      - name: '*frm_hdr'
        type: Dav1dFrameHeader
      - name: iw4
        type: int
      - name: sbsz
        type: int
      - name: use_ref_frame_mvs
        type: int
      - name: sign_bias[7]
        type: uint8_t
      - name: pocdiff[7]
        type: int8_t
      - name: mfmv_ref[3]
        type: uint8_t
      - name: mfmv_ref2cur[3]
        type: int8_t
      - name: mfmv_ref2ref[3][7]
        type: uint8_t
      - name: n_mfmvs
        type: int
      - name: n_blocks
        type: int
      - name: '*rp'
        type: refmvs_temporal_block
      - name: '*const *rp_ref'
        type: refmvs_temporal_block
      - name: '*rp_proj'
        type: refmvs_temporal_block
      - name: rp_stride
        type: ptrdiff_t
      - name: '*r'
        type: refmvs_block
      - name: n_tile_threads
        type: int
      item_type: struct
      name: refmvs_frame
      pos:
        line_end: 87
        line_start: 67
        source_file: /src/dav1d/src/refmvs.h
    - fields:
      - name: '*rf'
        type: refmvs_frame
      - name: '*r[32 + 5]'
        type: refmvs_block
      - name: '*rp_proj'
        type: refmvs_temporal_block
      - name: tile_col
        type: "struct {\n        int start, end;\n    }"
      item_type: struct
      name: refmvs_tile
      pos:
        line_end: 96
        line_start: 89
        source_file: /src/dav1d/src/refmvs.h
    - fields:
      - name: mv
        type: refmvs_mvpair
      - name: weight
        type: int
      item_type: struct
      name: refmvs_candidate
      pos:
        line_end: 101
        line_start: 98
        source_file: /src/dav1d/src/refmvs.h
    - fields:
      - name: load_tmvs
        type: load_tmvs_fn
      - name: save_tmvs
        type: save_tmvs_fn
      - name: splat_mv
        type: splat_mv_fn
      item_type: struct
      name: Dav1dRefmvsDSPContext
      pos:
        line_end: 126
        line_start: 122
        source_file: /src/dav1d/src/refmvs.h
    typedefs:
    - item_type: typedef
      name: (*load_tmvs_fn)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/dav1d/src/refmvs.h
      type: decl_load_tmvs_fn
    - item_type: typedef
      name: (*save_tmvs_fn)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/dav1d/src/refmvs.h
      type: decl_save_tmvs_fn
    - item_type: typedef
      name: (*splat_mv_fn)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/dav1d/src/refmvs.h
      type: decl_splat_mv_fn
    union:
    - fields:
      - name: mv[2]
        type: mv
      - name: n
        type: uint64_t
      item_type: union
      name: refmvs_mvpair
      pos:
        line_end: 57
        line_start: 54
        source_file: /src/dav1d/src/refmvs.h
- function_names: []
  source_file: /src/dav1d/src/decode.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_log
  source_file: /src/dav1d/src/log.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dav1d_log
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/dav1d/src/log.h
      type_or_value: dav1d_log
    - item_type: preproc_def
      name: dav1d_log_default_callback
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/dav1d/src/log.h
      type_or_value: 'NULL'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_intra_ctx
  - get_tx_ctx
  - get_partition_ctx
  - gather_left_partition_prob
  - gather_top_partition_prob
  - get_uv_inter_txtp
  - get_filter_ctx
  - get_comp_ctx
  - get_comp_dir_ctx
  - has_uni_comp
  - get_poc_diff
  - get_jnt_comp_ctx
  - get_mask_comp_ctx
  - av1_get_ref_ctx
  - av1_get_fwd_ref_ctx
  - av1_get_fwd_ref_1_ctx
  - av1_get_fwd_ref_2_ctx
  - av1_get_bwd_ref_ctx
  - av1_get_bwd_ref_1_ctx
  - av1_get_uni_p1_ctx
  - get_drl_context
  - get_cur_frame_segid
  - fix_int_mv_precision
  - fix_mv_precision
  - get_gmv_2d
  source_file: /src/dav1d/src/env.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: av1_get_ref_2_ctx
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/dav1d/src/env.h
      type_or_value: av1_get_bwd_ref_ctx
    - item_type: preproc_def
      name: av1_get_ref_3_ctx
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/dav1d/src/env.h
      type_or_value: av1_get_fwd_ref_ctx
    - item_type: preproc_def
      name: av1_get_ref_4_ctx
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/dav1d/src/env.h
      type_or_value: av1_get_fwd_ref_1_ctx
    - item_type: preproc_def
      name: av1_get_ref_5_ctx
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/dav1d/src/env.h
      type_or_value: av1_get_fwd_ref_2_ctx
    - item_type: preproc_def
      name: av1_get_ref_6_ctx
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/dav1d/src/env.h
      type_or_value: av1_get_bwd_ref_1_ctx
    - item_type: preproc_def
      name: av1_get_uni_p_ctx
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/dav1d/src/env.h
      type_or_value: av1_get_ref_ctx
    - item_type: preproc_def
      name: av1_get_uni_p2_ctx
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/dav1d/src/env.h
      type_or_value: av1_get_fwd_ref_2_ctx
    structs:
    - fields:
      - name: ALIGN(mode[32], 8)
        type: uint8_t
      - name: ALIGN(lcoef[32], 8)
        type: uint8_t
      - name: ALIGN(ccoef[2][32], 8)
        type: uint8_t
      - name: ALIGN(seg_pred[32], 8)
        type: uint8_t
      - name: ALIGN(skip[32], 8)
        type: uint8_t
      - name: ALIGN(skip_mode[32], 8)
        type: uint8_t
      - name: ALIGN(intra[32], 8)
        type: uint8_t
      - name: ALIGN(comp_type[32], 8)
        type: uint8_t
      - name: ALIGN(ref[2][32], 8)
        type: int8_t
      - name: ALIGN(filter[2][32], 8)
        type: uint8_t
      - name: ALIGN(tx_intra[32], 8)
        type: int8_t
      - name: ALIGN(tx[32], 8)
        type: int8_t
      - name: ALIGN(tx_lpf_y[32], 8)
        type: uint8_t
      - name: ALIGN(tx_lpf_uv[32], 8)
        type: uint8_t
      - name: ALIGN(partition[16], 8)
        type: uint8_t
      - name: ALIGN(uvmode[32], 8)
        type: uint8_t
      - name: ALIGN(pal_sz[32], 8)
        type: uint8_t
      item_type: struct
      name: BlockContext
      pos:
        line_end: 56
        line_start: 38
        source_file: /src/dav1d/src/env.h
    typedefs: []
    union: []
- function_names:
  - decl_recon_b_intra_fn
  - decl_recon_b_inter_fn
  - decl_filter_sbrow_fn
  - decl_backup_ipred_edge_fn
  - decl_read_coef_blocks_fn
  - decl_copy_pal_block_fn
  - decl_read_pal_plane_fn
  - decl_read_pal_uv_fn
  source_file: /src/dav1d/src/recon.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEBUG_BLOCK_INFO
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/dav1d/src/recon.h
      type_or_value: "0 && \\\n        f->frame_hdr->frame_offset == 2 && t->by >=
        0 && t->by < 4 && \\\n        t->bx >= 8 && t->bx < 12"
    - item_type: preproc_def
      name: DEBUG_B_PIXELS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/dav1d/src/recon.h
      type_or_value: '0'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*recon_b_intra_fn)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/dav1d/src/recon.h
      type: decl_recon_b_intra_fn
    - item_type: typedef
      name: (*recon_b_inter_fn)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/dav1d/src/recon.h
      type: decl_recon_b_inter_fn
    - item_type: typedef
      name: (*filter_sbrow_fn)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/dav1d/src/recon.h
      type: decl_filter_sbrow_fn
    - item_type: typedef
      name: (*backup_ipred_edge_fn)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/dav1d/src/recon.h
      type: decl_backup_ipred_edge_fn
    - item_type: typedef
      name: (*read_coef_blocks_fn)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/dav1d/src/recon.h
      type: decl_read_coef_blocks_fn
    - item_type: typedef
      name: (*copy_pal_block_fn)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/dav1d/src/recon.h
      type: decl_copy_pal_block_fn
    - item_type: typedef
      name: (*read_pal_plane_fn)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/dav1d/src/recon.h
      type: decl_read_pal_plane_fn
    - item_type: typedef
      name: (*read_pal_uv_fn)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/dav1d/src/recon.h
      type: decl_read_pal_uv_fn
    union: []
- function_names: []
  source_file: /src/dav1d/src/lf_apply.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - generate_scaling
  - bitfn
  - bitfn
  - bitfn
  source_file: /src/dav1d/src/fg_apply_tmpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - (union, 64)
  - (union, 64)
  source_file: /src/dav1d/src/internal.h
  types:
    enum:
    - enumerators:
      - name: DAV1D_TASK_TYPE_INIT
      - name: DAV1D_TASK_TYPE_TILE_RECONSTRUCTION
      - name: DAV1D_TASK_TYPE_ENTROPY_PROGRESS
      - name: DAV1D_TASK_TYPE_INIT_CDF
      - name: DAV1D_TASK_TYPE_TILE_ENTROPY
      - name: DAV1D_TASK_TYPE_DEBLOCK_COLS
      - name: DAV1D_TASK_TYPE_DEBLOCK_ROWS
      - name: DAV1D_TASK_TYPE_CDEF
      - name: DAV1D_TASK_TYPE_SUPER_RESOLUTION
      - name: DAV1D_TASK_TYPE_LOOP_RESTORATION
      - name: DAV1D_TASK_TYPE_FG_APPLY
      - name: DAV1D_TASK_TYPE_RECONSTRUCTION_PROGRESS
      - name: DAV1D_TASK_TYPE_FG_PREP
      item_type: enum
      name: TaskType
      pos:
        line_end: 90
        line_start: 76
        source_file: /src/dav1d/src/internal.h
    preproc_defs: []
    structs:
    - fields:
      - name: fg
        type: Dav1dFilmGrainDSPContext
      - name: ipred
        type: Dav1dIntraPredDSPContext
      - name: mc
        type: Dav1dMCDSPContext
      - name: itx
        type: Dav1dInvTxfmDSPContext
      - name: lf
        type: Dav1dLoopFilterDSPContext
      - name: cdef
        type: Dav1dCdefDSPContext
      - name: lr
        type: Dav1dLoopRestorationDSPContext
      item_type: struct
      name: Dav1dDSPContext
      pos:
        line_end: 69
        line_start: 61
        source_file: /src/dav1d/src/internal.h
    - fields:
      - name: data
        type: Dav1dData
      - name: start
        type: int
      item_type: struct
      name: Dav1dTileGroup
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/dav1d/src/internal.h
    - fields:
      - name: '*fc'
        type: Dav1dFrameContext
      - name: n_fc
        type: unsigned
      - name: '*tc'
        type: Dav1dTaskContext
      - name: n_tc
        type: unsigned
      - name: '*tile'
        type: struct Dav1dTileGroup
      - name: n_tile_data_alloc
        type: int
      - name: n_tile_data
        type: int
      - name: n_tiles
        type: int
      - name: '*seq_hdr_pool'
        type: Dav1dMemPool
      - name: '*seq_hdr_ref'
        type: Dav1dRef
      - name: '*seq_hdr'
        type: Dav1dSequenceHeader
      - name: '*frame_hdr_pool'
        type: Dav1dMemPool
      - name: '*frame_hdr_ref'
        type: Dav1dRef
      - name: '*frame_hdr'
        type: Dav1dFrameHeader
      - name: '*content_light_ref'
        type: Dav1dRef
      - name: '*content_light'
        type: Dav1dContentLightLevel
      - name: '*mastering_display_ref'
        type: Dav1dRef
      - name: '*mastering_display'
        type: Dav1dMasteringDisplay
      - name: '*itut_t35_ref'
        type: Dav1dRef
      - name: '*itut_t35'
        type: Dav1dITUTT35
      - name: n_itut_t35
        type: int
      - name: in
        type: Dav1dData
      - name: out
        type: Dav1dThreadPicture
      - name: flush_mem
        type: atomic_int
      - name: frame_thread
        type: "struct {\n        Dav1dThreadPicture *out_delayed;\n        unsigned
          next;\n    }"
      - name: task_thread
        type: "struct TaskThreadData {\n        pthread_mutex_t lock;\n        pthread_cond_t
          cond;\n        atomic_uint first;\n        unsigned cur;\n        // This
          is used for delayed reset of the task cur pointer when\n        // such
          operation is needed but the thread doesn't enter a critical\n        //
          section (typically when executing the next sbrow task locklessly).\n        //
          See src/thread_task.c:reset_task_cur().\n        atomic_uint reset_task_cur;\n
          \       atomic_int cond_signaled;\n        struct {\n            int exec,
          finished;\n            pthread_cond_t cond;\n            const Dav1dPicture
          *in;\n            Dav1dPicture *out;\n            enum TaskType type;\n
          \           atomic_int progress[2]; /* [0]=started, [1]=completed */\n            union
          {\n                struct {\n                    ALIGN(int8_t grain_lut_8bpc[3][GRAIN_HEIGHT
          + 1][GRAIN_WIDTH], 16);\n                    ALIGN(uint8_t scaling_8bpc[3][256],
          64);\n                };\n                struct {\n                    ALIGN(int16_t
          grain_lut_16bpc[3][GRAIN_HEIGHT + 1][GRAIN_WIDTH], 16);\n                    ALIGN(uint8_t
          scaling_16bpc[3][4096], 64);\n                };\n            };\n        }
          delayed_fg;\n        int inited;\n    }"
      - name: '*segmap_pool'
        type: Dav1dMemPool
      - name: '*refmvs_pool'
        type: Dav1dMemPool
      - name: refs[8]
        type: "struct {\n        Dav1dThreadPicture p;\n        Dav1dRef *segmap;\n
          \       Dav1dRef *refmvs;\n        uint8_t refpoc[7];\n    }"
      - name: '*cdf_pool'
        type: Dav1dMemPool
      - name: cdf[8]
        type: CdfThreadContext
      - name: dsp[3 /* 8, 10, 12 bits/component */]
        type: Dav1dDSPContext
      - name: pal_dsp
        type: Dav1dPalDSPContext
      - name: refmvs_dsp
        type: Dav1dRefmvsDSPContext
      - name: allocator
        type: Dav1dPicAllocator
      - name: apply_grain
        type: int
      - name: operating_point
        type: int
      - name: operating_point_idc
        type: unsigned
      - name: all_layers
        type: int
      - name: max_spatial_id
        type: int
      - name: frame_size_limit
        type: unsigned
      - name: strict_std_compliance
        type: int
      - name: output_invisible_frames
        type: int
      - name: inloop_filters
        type: enum Dav1dInloopFilterType
      - name: decode_frame_type
        type: enum Dav1dDecodeFrameType
      - name: drain
        type: int
      - name: frame_flags
        type: enum PictureFlags
      - name: event_flags
        type: enum Dav1dEventFlags
      - name: cached_error_props
        type: Dav1dDataProps
      - name: cached_error
        type: int
      - name: logger
        type: Dav1dLogger
      - name: '*picture_pool'
        type: Dav1dMemPool
      - name: '*pic_ctx_pool'
        type: Dav1dMemPool
      item_type: struct
      name: Dav1dContext
      pos:
        line_end: 201
        line_start: 92
        source_file: /src/dav1d/src/internal.h
    - fields:
      - name: lock
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: first
        type: atomic_uint
      - name: cur
        type: unsigned
      - name: reset_task_cur
        type: atomic_uint
      - name: cond_signaled
        type: atomic_int
      - name: delayed_fg
        type: "struct {\n            int exec, finished;\n            pthread_cond_t
          cond;\n            const Dav1dPicture *in;\n            Dav1dPicture *out;\n
          \           enum TaskType type;\n            atomic_int progress[2]; /*
          [0]=started, [1]=completed */\n            union {\n                struct
          {\n                    ALIGN(int8_t grain_lut_8bpc[3][GRAIN_HEIGHT + 1][GRAIN_WIDTH],
          16);\n                    ALIGN(uint8_t scaling_8bpc[3][256], 64);\n                };\n
          \               struct {\n                    ALIGN(int16_t grain_lut_16bpc[3][GRAIN_HEIGHT
          + 1][GRAIN_WIDTH], 16);\n                    ALIGN(uint8_t scaling_16bpc[3][4096],
          64);\n                };\n            };\n        }"
      - name: inited
        type: int
      item_type: struct
      name: TaskThreadData
      pos:
        line_end: 162
        line_start: 132
        source_file: /src/dav1d/src/internal.h
    - fields:
      - name: frame_idx
        type: unsigned
      - name: type
        type: enum TaskType
      - name: sby
        type: int
      - name: recon_progress
        type: int
      - name: deps_skip
        type: int
      - name: '*next'
        type: struct Dav1dTask
      item_type: struct
      name: Dav1dTask
      pos:
        line_end: 212
        line_start: 203
        source_file: /src/dav1d/src/internal.h
    - fields:
      - name: '*seq_hdr_ref'
        type: Dav1dRef
      - name: '*seq_hdr'
        type: Dav1dSequenceHeader
      - name: '*frame_hdr_ref'
        type: Dav1dRef
      - name: '*frame_hdr'
        type: Dav1dFrameHeader
      - name: refp[7]
        type: Dav1dThreadPicture
      - name: cur
        type: Dav1dPicture
      - name: sr_cur
        type: Dav1dThreadPicture
      - name: '*mvs_ref'
        type: Dav1dRef
      - name: '*mvs'
        type: refmvs_temporal_block
      - name: '*ref_mvs_ref[7]'
        type: Dav1dRef
      - name: '*cur_segmap_ref'
        type: Dav1dRef
      - name: '*cur_segmap'
        type: uint8_t
      - name: '*prev_segmap'
        type: uint8_t
      - name: refpoc[7]
        type: uint8_t
      - name: gmv_warp_allowed[7]
        type: uint8_t
      - name: in_cdf
        type: CdfThreadContext
      - name: '*tile'
        type: struct Dav1dTileGroup
      - name: n_tile_data_alloc
        type: int
      - name: n_tile_data
        type: int
      - name: svc[7][2 /* x, y */]
        type: "struct ScalableMotionParams {\n        int scale; // if no scaling,
          this is 0\n        int step;\n    }"
      - name: resize_step[2 /* y, uv */]
        type: int
      - name: '*c'
        type: Dav1dContext
      - name: '*ts'
        type: Dav1dTileState
      - name: n_ts
        type: int
      - name: '*dsp'
        type: Dav1dDSPContext
      - name: bd_fn
        type: "struct {\n        recon_b_intra_fn recon_b_intra;\n        recon_b_inter_fn
          recon_b_inter;\n        filter_sbrow_fn filter_sbrow;\n        filter_sbrow_fn
          filter_sbrow_deblock_cols;\n        filter_sbrow_fn filter_sbrow_deblock_rows;\n
          \       void (*filter_sbrow_cdef)(Dav1dTaskContext *tc, int sby);\n        filter_sbrow_fn
          filter_sbrow_resize;\n        filter_sbrow_fn filter_sbrow_lr;\n        backup_ipred_edge_fn
          backup_ipred_edge;\n        read_coef_blocks_fn read_coef_blocks;\n        copy_pal_block_fn
          copy_pal_block_y;\n        copy_pal_block_fn copy_pal_block_uv;\n        read_pal_plane_fn
          read_pal_plane;\n        read_pal_uv_fn read_pal_uv;\n    }"
      - name: ipred_edge_sz
        type: int
      - name: '*ipred_edge[3]'
        type: pixel
      - name: b4_stride
        type: ptrdiff_t
      - name: w4
        type: int
      - name: dq[DAV1D_MAX_SEGMENTS][3 /* plane */][2 /* dc/ac */]
        type: uint16_t
      - name: '*qm[N_RECT_TX_SIZES][3 /* plane */]'
        type: uint8_t
      - name: '*a'
        type: BlockContext
      - name: a_sz
        type: int
      - name: rf
        type: refmvs_frame
      - name: jnt_weights[7][7]
        type: uint8_t
      - name: bitdepth_max
        type: int
      - name: frame_thread
        type: "struct {\n        int next_tile_row[2 /* 0: reconstruction, 1: entropy
          */];\n        atomic_int entropy_progress;\n        atomic_int deblock_progress;
          // in sby units\n        atomic_uint *frame_progress, *copy_lpf_progress;\n
          \       // indexed using t->by * f->b4_stride + t->bx\n        Av1Block
          *b;\n        int16_t *cbi; /* bits 0-4: txtp, bits 5-15: eob */\n        //
          indexed using (t->by >> 1) * (f->b4_stride >> 1) + (t->bx >> 1)\n        pixel
          (*pal)[3 /* plane */][8 /* idx */];\n        // iterated over inside tile
          state\n        uint8_t *pal_idx;\n        coef *cf;\n        int prog_sz;\n
          \       int cbi_sz, pal_sz, pal_idx_sz, cf_sz;\n        // start offsets
          per tile\n        unsigned *tile_start_off;\n    }"
      - name: lf
        type: "struct {\n        uint8_t (*level)[4];\n        Av1Filter *mask;\n
          \       Av1Restoration *lr_mask;\n        int mask_sz /* w*h */, lr_mask_sz;\n
          \       int cdef_buf_plane_sz[2]; /* stride*sbh*4 */\n        int cdef_buf_sbh;\n
          \       int lr_buf_plane_sz[2]; /* (stride*sbh*4) << sb128 if n_tc > 1,
          else stride*4 */\n        int re_sz /* h */;\n        Av1FilterLUT lim_lut;\n
          \       ALIGN(uint8_t lvl[8 /* seg_id */][4 /* dir */][8 /* ref */][2 /*
          is_gmv */], 16);\n        int last_sharpness;\n        uint8_t *tx_lpf_right_edge[2];\n
          \       uint8_t *cdef_line_buf, *lr_line_buf;\n        pixel *cdef_line[2
          /* pre, post */][3 /* plane */];\n        pixel *cdef_lpf_line[3 /* plane
          */];\n        pixel *lr_lpf_line[3 /* plane */];\n\n        // in-loop filter
          per-frame state keeping\n        uint8_t *start_of_tile_row;\n        int
          start_of_tile_row_sz;\n        int need_cdef_lpf_copy;\n        pixel *p[3],
          *sr_p[3];\n        int restore_planes; // enum LrRestorePlanes\n    }"
      - name: task_thread
        type: "struct {\n        pthread_mutex_t lock;\n        pthread_cond_t cond;\n
          \       struct TaskThreadData *ttd;\n        struct Dav1dTask *tasks, *tile_tasks[2],
          init_task;\n        int num_tasks, num_tile_tasks;\n        atomic_int init_done;\n
          \       atomic_int done[2];\n        int retval;\n        int update_set;
          // whether we need to update CDF reference\n        atomic_int error;\n
          \       atomic_int task_counter;\n        struct Dav1dTask *task_head, *task_tail;\n
          \       // Points to the task directly before the cur pointer in the queue.\n
          \       // This cur pointer is theoretical here, we actually keep track
          of the\n        // \"prev_t\" variable. This is needed to not loose the
          tasks in\n        // [head;cur-1] when picking one for execution.\n        struct
          Dav1dTask *task_cur_prev;\n        struct { // async task insertion\n            atomic_int
          merge;\n            pthread_mutex_t lock;\n            Dav1dTask *head,
          *tail;\n        } pending_tasks;\n    }"
      - name: tile_thread
        type: "struct FrameTileThreadData {\n        int (*lowest_pixel_mem)[7][2];\n
          \       int lowest_pixel_mem_sz;\n    }"
      item_type: struct
      name: Dav1dFrameContext
      pos:
        line_end: 351
        line_start: 214
        source_file: /src/dav1d/src/internal.h
    - fields:
      - name: scale
        type: int
      - name: step
        type: int
      item_type: struct
      name: ScalableMotionParams
      pos:
        line_end: 239
        line_start: 236
        source_file: /src/dav1d/src/internal.h
    - fields:
      - name: (*lowest_pixel_mem)[7][2]
        type: int
      - name: lowest_pixel_mem_sz
        type: int
      item_type: struct
      name: FrameTileThreadData
      pos:
        line_end: 350
        line_start: 347
        source_file: /src/dav1d/src/internal.h
    - fields:
      - name: cdf
        type: CdfContext
      - name: msac
        type: MsacContext
      - name: tiling
        type: "struct {\n        int col_start, col_end, row_start, row_end; // in
          4px units\n        int col, row; // in tile units\n    }"
      - name: 'progress[2 /* 0: reconstruction, 1: entropy */]'
        type: atomic_int
      - name: 'frame_thread[2 /* 0: reconstruction, 1: entropy */]'
        type: "struct {\n        uint8_t *pal_idx;\n        int16_t *cbi;\n        coef
          *cf;\n    }"
      - name: (*lowest_pixel)[7][2]
        type: int
      - name: dqmem[DAV1D_MAX_SEGMENTS][3 /* plane */][2 /* dc/ac */]
        type: uint16_t
      - name: (*dq)[3][2]
        type: uint16_t
      - name: last_qidx
        type: int
      - name: last_delta_lf
        type: "union {\n        int8_t i8[4];\n        uint32_t u32;\n    }"
      - name: (*lflvl)[4][8][2]
        type: uint8_t
      - name: '*lr_ref[3]'
        type: Av1RestorationUnit
      item_type: struct
      name: Dav1dTileState
      pos:
        line_end: 386
        line_start: 353
        source_file: /src/dav1d/src/internal.h
    - fields:
      - name: '*c'
        type: Dav1dContext
      - name: '*f'
        type: Dav1dFrameContext
      - name: '*ts'
        type: Dav1dTileState
      - name: bx
        type: int
      - name: l
        type: BlockContext
      - name: rt
        type: refmvs_tile
      - name: pal_sz_uv[2 /* a/l */][32 /* bx4/by4 */]
        type: uint8_t
      - name: warpmv
        type: Dav1dWarpedMotionParams
      - name: '*lf_mask'
        type: Av1Filter
      - name: top_pre_cdef_toggle
        type: int
      - name: '*cur_sb_cdef_idx_ptr'
        type: int8_t
      - name: tl_4x4_filter
        type: enum Filter2d
      - name: frame_thread
        type: "struct {\n        int pass;\n    }"
      - name: task_thread
        type: "struct {\n        struct thread_data td;\n        struct TaskThreadData
          *ttd;\n        struct FrameTileThreadData *fttd;\n        int flushed;\n
          \       int die;\n    }"
      item_type: struct
      name: Dav1dTaskContext
      pos:
        line_end: 468
        line_start: 388
        source_file: /src/dav1d/src/internal.h
    typedefs:
    - item_type: typedef
      name: Dav1dFrameContext
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/dav1d/src/internal.h
      type: Dav1dFrameContext
    - item_type: typedef
      name: Dav1dTileState
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/dav1d/src/internal.h
      type: Dav1dTileState
    - item_type: typedef
      name: Dav1dTaskContext
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/dav1d/src/internal.h
      type: Dav1dTaskContext
    - item_type: typedef
      name: Dav1dTask
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/dav1d/src/internal.h
      type: Dav1dTask
    union: []
- function_names:
  - dav1d_init_cpu
  - dav1d_set_cpu_flags_mask
  - dav1d_num_logical_processors
  - dav1d_getauxval
  source_file: /src/dav1d/src/cpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: cpu_set_t
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/dav1d/src/cpu.c
      type_or_value: cpuset_t
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_bytealign_get_bits
  - dav1d_get_bits_pos
  source_file: /src/dav1d/src/getbits.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: state
        type: uint64_t
      - name: bits_left
        type: int
      - name: '*ptr'
        type: uint8_t
      item_type: struct
      name: GetBits
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/dav1d/src/getbits.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/levels.h
  types:
    enum:
    - enumerators:
      - name: OBU_META_HDR_CLL
        value: '1'
      - name: OBU_META_SCALABILITY
        value: '3'
      - name: OBU_META_ITUT_T35
        value: '4'
      - name: OBU_META_HDR_MDCV
        value: '2'
      - name: OBU_META_TIMECODE
        value: '5'
      item_type: enum
      name: ObuMetaType
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: TX_4X4
      - name: TX_16X16
      - name: TX_8X8
      - name: TX_64X64
      - name: TX_32X32
      - name: N_TX_SIZES
      item_type: enum
      name: TxfmSize
      pos:
        line_end: 50
        line_start: 43
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: BL_128X128
      - name: BL_64X64
      - name: BL_16X16
      - name: BL_32X32
      - name: BL_8X8
      - name: N_BL_LEVELS
      item_type: enum
      name: BlockLevel
      pos:
        line_end: 59
        line_start: 52
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: RTX_4X8
        value: N_TX_SIZES
      - name: RTX_8X16
      - name: RTX_8X4
      - name: RTX_16X32
      - name: RTX_16X8
      - name: RTX_32X16
      - name: RTX_32X64
      - name: RTX_64X32
      - name: RTX_4X16
      - name: RTX_16X4
      - name: RTX_16X64
      - name: N_RECT_TX_SIZES
      - name: RTX_8X32
      - name: RTX_64X16
      - name: RTX_32X8
      item_type: enum
      name: RectTxfmSize
      pos:
        line_end: 77
        line_start: 61
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: FLIPADST_FLIPADST
      - name: V_DCT
      - name: N_TX_TYPES_PLUS_LL
      - name: V_FLIPADST
      - name: DCT_DCT
      - name: DCT_ADST
      - name: FLIPADST_DCT
      - name: IDTX
      - name: WHT_WHT
        value: N_TX_TYPES
      - name: H_ADST
      - name: FLIPADST_ADST
      - name: V_ADST
      - name: N_TX_TYPES
      - name: ADST_ADST
      - name: ADST_DCT
      - name: DCT_FLIPADST
      - name: ADST_FLIPADST
      - name: H_FLIPADST
      - name: H_DCT
      item_type: enum
      name: TxfmType
      pos:
        line_end: 99
        line_start: 79
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: TX_CLASS_2D
      - name: TX_CLASS_V
      - name: TX_CLASS_H
      item_type: enum
      name: TxClass
      pos:
        line_end: 105
        line_start: 101
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: HOR_PRED
      - name: HOR_DOWN_PRED
      - name: SMOOTH_V_PRED
      - name: TOP_DC_PRED
      - name: CFL_PRED
        value: N_INTRA_PRED_MODES
      - name: Z3_PRED
      - name: VERT_PRED
      - name: VERT_RIGHT_PRED
      - name: SMOOTH_PRED
      - name: LEFT_DC_PRED
        value: DIAG_DOWN_LEFT_PRED
      - name: N_INTRA_PRED_MODES
      - name: Z2_PRED
      - name: DIAG_DOWN_RIGHT_PRED
      - name: VERT_LEFT_PRED
      - name: N_IMPL_INTRA_PRED_MODES
        value: N_UV_INTRA_PRED_MODES
      - name: PAETH_PRED
      - name: Z1_PRED
      - name: DC_PRED
      - name: DIAG_DOWN_LEFT_PRED
      - name: HOR_UP_PRED
      - name: N_UV_INTRA_PRED_MODES
      - name: SMOOTH_H_PRED
      - name: DC_128_PRED
      - name: FILTER_PRED
        value: N_INTRA_PRED_MODES
      item_type: enum
      name: IntraPredMode
      pos:
        line_end: 132
        line_start: 107
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: II_DC_PRED
      - name: II_VERT_PRED
      - name: II_SMOOTH_PRED
      - name: II_HOR_PRED
      - name: N_INTER_INTRA_PRED_MODES
      item_type: enum
      name: InterIntraPredMode
      pos:
        line_end: 140
        line_start: 134
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: PARTITION_NONE
      - name: PARTITION_T_TOP_SPLIT
      - name: PARTITION_SPLIT
      - name: PARTITION_V
      - name: PARTITION_H
      - name: PARTITION_T_BOTTOM_SPLIT
      - name: PARTITION_T_LEFT_SPLIT
      - name: PARTITION_T_RIGHT_SPLIT
      - name: PARTITION_H4
      - name: PARTITION_V4
      - name: N_PARTITIONS
      - name: N_SUB8X8_PARTITIONS
        value: PARTITION_T_TOP_SPLIT
      item_type: enum
      name: BlockPartition
      pos:
        line_end: 155
        line_start: 142
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: BS_64x128
      - name: BS_32x64
      - name: BS_16x4
      - name: BS_8x4
      - name: BS_16x64
      - name: N_BS_SIZES
      - name: BS_128x64
      - name: BS_64x16
      - name: BS_32x8
      - name: BS_8x8
      - name: BS_16x8
      - name: BS_4x4
      - name: BS_64x32
      - name: BS_32x16
      - name: BS_16x16
      - name: BS_8x16
      - name: BS_4x8
      - name: BS_128x128
      - name: BS_64x64
      - name: BS_32x32
      - name: BS_16x32
      - name: BS_8x32
      - name: BS_4x16
      item_type: enum
      name: BlockSize
      pos:
        line_end: 181
        line_start: 157
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: FILTER_2D_8TAP_REGULAR
      - name: FILTER_2D_8TAP_REGULAR_SHARP
      - name: FILTER_2D_8TAP_REGULAR_SMOOTH
      - name: FILTER_2D_8TAP_SHARP_SMOOTH
      - name: FILTER_2D_8TAP_SHARP_REGULAR
      - name: FILTER_2D_8TAP_SHARP
      - name: FILTER_2D_8TAP_SMOOTH_REGULAR
      - name: FILTER_2D_8TAP_SMOOTH
      - name: FILTER_2D_8TAP_SMOOTH_SHARP
      - name: FILTER_2D_BILINEAR
      - name: N_2D_FILTERS
      item_type: enum
      name: Filter2d
      pos:
        line_end: 195
        line_start: 183
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: MV_JOINT_ZERO
      - name: MV_JOINT_HV
      - name: MV_JOINT_V
      - name: MV_JOINT_H
      - name: N_MV_JOINTS
      item_type: enum
      name: MVJoint
      pos:
        line_end: 203
        line_start: 197
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: NEARESTMV
      - name: GLOBALMV
      - name: NEARMV
      - name: N_INTER_PRED_MODES
      - name: NEWMV
      item_type: enum
      name: InterPredMode
      pos:
        line_end: 211
        line_start: 205
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: NEAREST_DRL
      - name: NEAR_DRL
      - name: NEARER_DRL
      - name: NEARISH_DRL
      item_type: enum
      name: DRL_PROXIMITY
      pos:
        line_end: 218
        line_start: 213
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: NEARESTMV_NEARESTMV
      - name: NEARESTMV_NEWMV
      - name: NEWMV_NEARESTMV
      - name: NEARMV_NEWMV
      - name: NEARMV_NEARMV
      - name: NEWMV_NEARMV
      - name: GLOBALMV_GLOBALMV
      - name: NEWMV_NEWMV
      - name: N_COMP_INTER_PRED_MODES
      item_type: enum
      name: CompInterPredMode
      pos:
        line_end: 230
        line_start: 220
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: COMP_INTER_NONE
      - name: COMP_INTER_WEIGHTED_AVG
      - name: COMP_INTER_WEDGE
      - name: COMP_INTER_SEG
      - name: COMP_INTER_AVG
      item_type: enum
      name: CompInterType
      pos:
        line_end: 238
        line_start: 232
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: INTER_INTRA_NONE
      - name: INTER_INTRA_BLEND
      - name: INTER_INTRA_WEDGE
      item_type: enum
      name: InterIntraType
      pos:
        line_end: 244
        line_start: 240
        source_file: /src/dav1d/src/levels.h
    - enumerators:
      - name: MM_TRANSLATION
      - name: MM_WARP
      - name: MM_OBMC
      item_type: enum
      name: MotionMode
      pos:
        line_end: 257
        line_start: 253
        source_file: /src/dav1d/src/levels.h
    preproc_defs:
    - item_type: preproc_def
      name: QINDEX_RANGE
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/dav1d/src/levels.h
      type_or_value: '256'
    structs:
    - fields:
      - name: bl
        type: uint8_t
      - name: intra
        type: uint8_t
      item_type: struct
      name: Av1Block
      pos:
        line_end: 286
        line_start: 261
        source_file: /src/dav1d/src/levels.h
    typedefs: []
    union:
    - fields:
      - name: n
        type: uint32_t
      item_type: union
      name: mv
      pos:
        line_end: 251
        line_start: 246
        source_file: /src/dav1d/src/levels.h
- function_names: []
  source_file: /src/dav1d/src/dequant_tables.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_default_picture_alloc
  - dav1d_default_picture_release
  - free_buffer
  - dav1d_picture_free_itut_t35
  - picture_alloc
  - dav1d_picture_copy_props
  - dav1d_thread_picture_alloc
  - dav1d_picture_alloc_copy
  - dav1d_picture_ref
  - dav1d_picture_move_ref
  - dav1d_thread_picture_ref
  - dav1d_thread_picture_move_ref
  - dav1d_picture_unref_internal
  - dav1d_thread_picture_unref
  - dav1d_picture_get_event_flags
  source_file: /src/dav1d/src/picture.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: allocator
        type: Dav1dPicAllocator
      - name: pic
        type: Dav1dPicture
      - name: ref
        type: Dav1dRef
      - name: '*extra_data[]'
        type: void
      item_type: struct
      name: pic_ctx_context
      pos:
        line_end: 88
        line_start: 83
        source_file: /src/dav1d/src/picture.c
    typedefs: []
    union: []
- function_names:
  - decl_mc_fn
  - decl_mc_scaled_fn
  - decl_warp8x8_fn
  - decl_mct_fn
  - decl_mct_scaled_fn
  - decl_warp8x8t_fn
  - decl_avg_fn
  - decl_w_avg_fn
  - decl_mask_fn
  - decl_w_mask_fn
  - decl_blend_fn
  - decl_blend_dir_fn
  - decl_emu_edge_fn
  - decl_resize_fn
  - decl_8tap_gen
  - decl_8tap_fns
  - init_8tap_gen
  - init_8tap_fns
  source_file: /src/dav1d/src/mc.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mc[N_2D_FILTERS]
        type: mc_fn
      - name: mc_scaled[N_2D_FILTERS]
        type: mc_scaled_fn
      - name: mct[N_2D_FILTERS]
        type: mct_fn
      - name: mct_scaled[N_2D_FILTERS]
        type: mct_scaled_fn
      - name: avg
        type: avg_fn
      - name: w_avg
        type: w_avg_fn
      - name: mask
        type: mask_fn
      - name: w_mask[3 /* 444, 422, 420 */]
        type: w_mask_fn
      - name: blend
        type: blend_fn
      - name: blend_v
        type: blend_dir_fn
      - name: blend_h
        type: blend_dir_fn
      - name: warp8x8
        type: warp8x8_fn
      - name: warp8x8t
        type: warp8x8t_fn
      - name: emu_edge
        type: emu_edge_fn
      - name: resize
        type: resize_fn
      item_type: struct
      name: Dav1dMCDSPContext
      pos:
        line_end: 161
        line_start: 145
        source_file: /src/dav1d/src/mc.h
    typedefs:
    - item_type: typedef
      name: (*mc_fn)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/dav1d/src/mc.h
      type: decl_mc_fn
    - item_type: typedef
      name: (*mc_scaled_fn)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/dav1d/src/mc.h
      type: decl_mc_scaled_fn
    - item_type: typedef
      name: (*warp8x8_fn)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/dav1d/src/mc.h
      type: decl_warp8x8_fn
    - item_type: typedef
      name: (*mct_fn)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/dav1d/src/mc.h
      type: decl_mct_fn
    - item_type: typedef
      name: (*mct_scaled_fn)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/dav1d/src/mc.h
      type: decl_mct_scaled_fn
    - item_type: typedef
      name: (*warp8x8t_fn)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/dav1d/src/mc.h
      type: decl_warp8x8t_fn
    - item_type: typedef
      name: (*avg_fn)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/dav1d/src/mc.h
      type: decl_avg_fn
    - item_type: typedef
      name: (*w_avg_fn)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/dav1d/src/mc.h
      type: decl_w_avg_fn
    - item_type: typedef
      name: (*mask_fn)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/dav1d/src/mc.h
      type: decl_mask_fn
    - item_type: typedef
      name: (*w_mask_fn)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/dav1d/src/mc.h
      type: decl_w_mask_fn
    - item_type: typedef
      name: (*blend_fn)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/dav1d/src/mc.h
      type: decl_blend_fn
    - item_type: typedef
      name: (*blend_dir_fn)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/dav1d/src/mc.h
      type: decl_blend_dir_fn
    - item_type: typedef
      name: (*emu_edge_fn)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/dav1d/src/mc.h
      type: decl_emu_edge_fn
    - item_type: typedef
      name: (*resize_fn)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/dav1d/src/mc.h
      type: decl_resize_fn
    union: []
- function_names:
  - constrain
  - fill
  - padding
  - cdef_filter_block_c
  - cdef_fn
  - cdef_find_dir_c
  - bitfn
  source_file: /src/dav1d/src/cdef_tmpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_quant_tables
  - read_mv_component_diff
  - read_mv_residual
  - read_tx_tree
  - neg_deinterleave
  - find_matching_ref
  - bs
  - matches
  - derive_warpmv
  - add_sample
  - findoddzero
  - order_palette
  - add
  - read_pal_indices
  - read_vartx_tree
  - get_prev_frame_segid
  - splat_oneref_mv
  - splat_intrabc_mv
  - splat_tworef_mv
  - splat_intraref
  - mc_lowest_px
  - affine_lowest_px
  - affine_lowest_px_luma
  - affine_lowest_px_chroma
  - obmc_lowest_px
  - decode_b
  - set_ctx
  - signabs
  - set_ctx
  - SIGN
  - set_ctx
  - set_ctx
  - assign_comp_mv
  - signabs
  - set_ctx
  - set_ctx
  - checked_decode_b
  - decode_sb
  - set_ctx
  - reset_context
  - setup_tile
  - read_restoration_info
  - check_trailing_bits_after_symbol_coder
  - dav1d_decode_tile_sbrow
  - dav1d_decode_frame_init
  - dav1d_decode_frame_init_cdf
  - dav1d_decode_frame_main
  - dav1d_decode_frame_exit
  - dav1d_decode_frame
  - get_upscale_x0
  - dav1d_submit_frame
  - assign_bitdepth_case
  - assign_bitdepth_case
  - scale_fac
  source_file: /src/dav1d/src/decode.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: decode_b
      pos:
        line_end: 2113
        line_start: 2112
        source_file: /src/dav1d/src/decode.c
      type_or_value: checked_decode_b
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_itx_1d_fn
  source_file: /src/dav1d/src/itx_1d.h
  types:
    enum:
    - enumerators:
      - name: DCT
      - name: IDENTITY
      - name: FLIPADST
      - name: N_TX_1D_TYPES
      - name: ADST
      item_type: enum
      name: Tx1dType
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/dav1d/src/itx_1d.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*itx_1d_fn)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/dav1d/src/itx_1d.h
      type: decl_itx_1d_fn
    union: []
- function_names:
  - dav1d_get_default_cpu_flags
  - dav1d_get_cpu_flags
  source_file: /src/dav1d/src/cpu.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - insert_border
  - transpose
  - hflip
  - copy2d
  - MASK_OFFSET
  - init_chroma
  - fill2d_16x2
  - build_nondc_ii_masks
  - dav1d_init_ii_wedge_masks
  - fill
  - BUILD_NONDC_II_MASKS
  - ASSIGN_NONDC_II_OFFSET
  source_file: /src/dav1d/src/wedge.c
  types:
    enum:
    - enumerators:
      - name: WEDGE_HORIZONTAL
        value: '0'
      - name: WEDGE_VERTICAL
        value: '1'
      - name: WEDGE_OBLIQUE117
        value: '4'
      - name: WEDGE_OBLIQUE63
        value: '3'
      - name: WEDGE_OBLIQUE27
        value: '2'
      - name: WEDGE_OBLIQUE153
        value: '5'
      - name: N_WEDGE_DIRECTIONS
      item_type: enum
      name: WedgeDirectionType
      pos:
        line_end: 44
        line_start: 36
        source_file: /src/dav1d/src/wedge.c
    - enumerators:
      - name: WEDGE_MASTER_LINE_ODD
      - name: N_WEDGE_MASTER_LINES
      - name: WEDGE_MASTER_LINE_VERT
      - name: WEDGE_MASTER_LINE_EVEN
      item_type: enum
      name: WedgeMasterLineType
      pos:
        line_end: 214
        line_start: 209
        source_file: /src/dav1d/src/wedge.c
    preproc_defs: []
    structs:
    - fields:
      - name: direction
        type: uint8_t
      - name: x_offset
        type: uint8_t
      - name: y_offset
        type: uint8_t
      item_type: struct
      name: wedge_code_type
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/dav1d/src/wedge.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/tables.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: w
        type: uint8_t
      item_type: struct
      name: TxfmInfo
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/dav1d/src/tables.h
    typedefs: []
    union: []
- function_names:
  - decl_pal_idx_finish_fn
  source_file: /src/dav1d/src/pal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pal_idx_finish
        type: pal_idx_finish_fn
      item_type: struct
      name: Dav1dPalDSPContext
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/dav1d/src/pal.h
    typedefs:
    - item_type: typedef
      name: (*pal_idx_finish_fn)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/dav1d/src/pal.h
      type: decl_pal_idx_finish_fn
    union: []
- function_names: []
  source_file: /src/dav1d/src/picture.h
  types:
    enum:
    - enumerators:
      - name: PLANE_TYPE_Y
      - name: PLANE_TYPE_BLOCK
      - name: PLANE_TYPE_UV
      - name: PLANE_TYPE_ALL
      item_type: enum
      name: PlaneType
      pos:
        line_end: 43
        line_start: 38
        source_file: /src/dav1d/src/picture.h
    - enumerators:
      - name: PICTURE_FLAG_NEW_SEQUENCE
        value: 1 << 0
      - name: PICTURE_FLAG_NEW_OP_PARAMS_INFO
        value: 1 << 1
      - name: PICTURE_FLAG_NEW_TEMPORAL_UNIT
        value: 1 << 2
      item_type: enum
      name: PictureFlags
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/dav1d/src/picture.h
    preproc_defs: []
    structs:
    - fields:
      - name: p
        type: Dav1dPicture
      - name: visible
        type: int
      - name: showable
        type: int
      - name: flags
        type: enum PictureFlags
      - name: '*progress'
        type: atomic_uint
      item_type: struct
      name: Dav1dThreadPicture
      pos:
        line_end: 62
        line_start: 51
        source_file: /src/dav1d/src/picture.h
    - fields:
      - name: '*data'
        type: void
      - name: '*next'
        type: struct Dav1dPictureBuffer
      item_type: struct
      name: Dav1dPictureBuffer
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/dav1d/src/picture.h
    - fields:
      - name: '*itut_t35'
        type: Dav1dITUTT35
      - name: n_itut_t35
        type: size_t
      - name: ref
        type: Dav1dRef
      item_type: struct
      name: itut_t35_ctx_context
      pos:
        line_end: 107
        line_start: 103
        source_file: /src/dav1d/src/picture.h
    typedefs: []
    union: []
- function_names:
  - reset_task_cur
  - reset_task_cur_async
  - insert_tasks_between
  - insert_tasks
  - insert_task
  - add_pending
  - merge_pending_frame
  - merge_pending
  - create_filter_sbrow
  - dav1d_task_create_tile_sbrow
  - dav1d_task_frame_init
  - dav1d_task_delayed_fg
  - ensure_progress
  - check_tile
  - get_frame_progress
  - abort_frame
  - delayed_fg_task
  - dav1d_worker_task
  source_file: /src/dav1d/src/thread_task.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bytefn
  source_file: /src/dav1d/src/ipred_prepare_tmpl.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: needs_left
        type: uint8_t
      - name: needs_top
        type: uint8_t
      - name: needs_topleft
        type: uint8_t
      - name: needs_topright
        type: uint8_t
      - name: needs_bottomleft
        type: uint8_t
      item_type: struct
      name: "av1_intra_prediction_edges[N_IMPL_INTRA_PRED_MODES] = {\n    [DC_PRED]
        \      = { .needs_top  = 1, .needs_left = 1 },\n    [VERT_PRED]     = { .needs_top
        \ = 1 },\n    [HOR_PRED]      = { .needs_left = 1 },\n    [LEFT_DC_PRED]  =
        { .needs_left = 1 },\n    [TOP_DC_PRED]   = { .needs_top  = 1 },\n    [DC_128_PRED]
        \  = { 0 },\n    [Z1_PRED]       = { .needs_top = 1, .needs_topright = 1,\n
        \                       .needs_topleft = 1 },\n    [Z2_PRED]       = { .needs_left
        = 1, .needs_top = 1, .needs_topleft = 1 },\n    [Z3_PRED]       = { .needs_left
        = 1, .needs_bottomleft = 1,\n                        .needs_topleft = 1 },\n
        \   [SMOOTH_PRED]   = { .needs_left = 1, .needs_top = 1 },\n    [SMOOTH_V_PRED]
        = { .needs_left = 1, .needs_top = 1 },\n    [SMOOTH_H_PRED] = { .needs_left
        = 1, .needs_top = 1 },\n    [PAETH_PRED]    = { .needs_left = 1, .needs_top
        = 1, .needs_topleft = 1 },\n    [FILTER_PRED]   = { .needs_left = 1, .needs_top
        = 1, .needs_topleft = 1 },\n}"
      pos:
        line_end: 55
        line_start: 49
        source_file: /src/dav1d/src/ipred_prepare_tmpl.c
    typedefs: []
    union: []
- function_names:
  - dav1d_init_get_bits
  - dav1d_get_bit
  - refill
  - GET_BITS
  - dav1d_get_uleb128
  - dav1d_get_uniform
  - dav1d_get_vlc
  - get_bits_subexp_u
  - dav1d_get_bits_subexp
  source_file: /src/dav1d/src/getbits.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/data.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/thread_data.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: thread
        type: pthread_t
      - name: cond
        type: pthread_cond_t
      - name: lock
        type: pthread_mutex_t
      - name: inited
        type: int
      item_type: struct
      name: thread_data
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/dav1d/src/thread_data.h
    typedefs: []
    union: []
- function_names:
  - dav1d_msac_decode_bools
  - dav1d_msac_decode_uniform
  source_file: /src/dav1d/src/msac.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt4
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/dav1d/src/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt_c
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt8
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/dav1d/src/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt_c
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt16
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/dav1d/src/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt_c
    - item_type: preproc_def
      name: dav1d_msac_decode_bool_adapt
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/dav1d/src/msac.h
      type_or_value: dav1d_msac_decode_bool_adapt_c
    - item_type: preproc_def
      name: dav1d_msac_decode_bool_equi
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/dav1d/src/msac.h
      type_or_value: dav1d_msac_decode_bool_equi_c
    - item_type: preproc_def
      name: dav1d_msac_decode_bool
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/dav1d/src/msac.h
      type_or_value: dav1d_msac_decode_bool_c
    - item_type: preproc_def
      name: dav1d_msac_decode_hi_tok
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/dav1d/src/msac.h
      type_or_value: dav1d_msac_decode_hi_tok_c
    structs:
    - fields:
      - name: '*buf_pos'
        type: uint8_t
      - name: '*buf_end'
        type: uint8_t
      - name: dif
        type: ec_win
      - name: rng
        type: unsigned
      - name: cnt
        type: int
      - name: allow_update_cdf
        type: int
      item_type: struct
      name: MsacContext
      pos:
        line_end: 48
        line_start: 37
        source_file: /src/dav1d/src/msac.h
    typedefs:
    - item_type: typedef
      name: ec_win
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/dav1d/src/msac.h
      type: size_t
    union: []
- function_names:
  - dav1d_set_thread_name
  - pthread_join
  - pthread_attr_init
  - pthread_attr_destroy
  - pthread_attr_setstacksize
  - pthread_mutex_init
  - pthread_mutex_destroy
  - pthread_mutex_lock
  - pthread_mutex_unlock
  - pthread_cond_init
  - pthread_cond_destroy
  - pthread_cond_wait
  - pthread_cond_signal
  - pthread_cond_broadcast
  - dav1d_init_thread
  - dav1d_set_thread_name
  - dav1d_set_thread_name
  - dav1d_set_thread_name
  - dav1d_set_thread_name
  - dav1d_set_thread_name
  - dav1d_set_thread_name
  - dav1d_set_thread_name
  source_file: /src/dav1d/src/thread.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTHREAD_MUTEX_INITIALIZER
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/src/thread.h
      type_or_value: SRWLOCK_INIT
    - item_type: preproc_def
      name: PTHREAD_ONCE_INIT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/dav1d/src/thread.h
      type_or_value: INIT_ONCE_STATIC_INIT
    - item_type: preproc_def
      name: pthread_create
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/dav1d/src/thread.h
      type_or_value: dav1d_pthread_create
    - item_type: preproc_def
      name: pthread_once
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/dav1d/src/thread.h
      type_or_value: dav1d_pthread_once
    structs:
    - fields:
      - name: h
        type: HANDLE
      - name: '*(*func)(void*)'
        type: void
      - name: '*arg'
        type: void
      item_type: struct
      name: pthread_t
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/dav1d/src/thread.h
    - fields:
      - name: stack_size
        type: unsigned
      item_type: struct
      name: pthread_attr_t
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/dav1d/src/thread.h
    typedefs:
    - item_type: typedef
      name: pthread_mutex_t
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/dav1d/src/thread.h
      type: SRWLOCK
    - item_type: typedef
      name: pthread_cond_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/dav1d/src/thread.h
      type: CONDITION_VARIABLE
    - item_type: typedef
      name: pthread_once_t
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/dav1d/src/thread.h
      type: INIT_ONCE
    union: []
- function_names:
  - dav1d_ref_create
  - dav1d_ref_init
  - dav1d_ref_inc
  - dav1d_ref_is_writable
  source_file: /src/dav1d/src/ref.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: void
      - name: '*const_data'
        type: void
      - name: ref_cnt
        type: atomic_int
      - name: free_ref
        type: int
      - name: (*free_callback)(const uint8_t *data, void *user_data)
        type: void
      - name: '*user_data'
        type: void
      item_type: struct
      name: Dav1dRef
      pos:
        line_end: 45
        line_start: 38
        source_file: /src/dav1d/src/ref.h
    typedefs: []
    union: []
- function_names:
  - get_random_number
  - round2
  - generate_grain_y_c
  - generate_grain_uv_c
  - gnuv_ss_fn
  - sample_lut
  - fgy_32x32xn_c
  - add_noise_y
  - fguv_32x32xn_c
  - add_noise_uv
  - fguv_ss_fn
  - bitfn
  source_file: /src/dav1d/src/filmgrain_tmpl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SUB_GRAIN_WIDTH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/dav1d/src/filmgrain_tmpl.c
      type_or_value: '44'
    - item_type: preproc_def
      name: SUB_GRAIN_HEIGHT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/src/filmgrain_tmpl.c
      type_or_value: '38'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CDF1
  - CDF2
  - CDF3
  - CDF4
  - CDF5
  - CDF6
  - CDF7
  - CDF8
  - CDF9
  - CDF10
  - CDF11
  - CDF12
  - CDF13
  - CDF14
  - CDF15
  - dav1d_cdf_thread_update
  - update_cdf_1d
  - update_cdf_2d
  - update_cdf_3d
  - update_cdf_4d
  - dav1d_cdf_thread_init_static
  - dav1d_cdf_thread_copy
  - dav1d_cdf_thread_alloc
  - dav1d_cdf_thread_ref
  - dav1d_cdf_thread_unref
  source_file: /src/dav1d/src/cdf.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: m
        type: CdfModeContext
      - name: mv
        type: "struct {\n        CdfMvComponent comp;\n        ALIGN(uint16_t joint[N_MV_JOINTS],
          8);\n    }"
      item_type: struct
      name: CdfDefaultContext
      pos:
        line_end: 74
        line_start: 67
        source_file: /src/dav1d/src/cdf.c
    typedefs: []
    union: []
- function_names:
  - II_MASK
  - WEDGE_MASK
  source_file: /src/dav1d/src/wedge.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: offsets[3 /* 444, 422, 420 */][BS_8x8 - BS_32x32 + 1]
        type: "struct {\n        uint16_t wedge[2 /* sign */][16 /* wedge_idx */];\n
          \       uint16_t ii[N_INTER_INTRA_PRED_MODES];\n    }"
      - name: ALIGN(wedge_444_32x32[    16 * 32 * 32], 64)
        type: uint8_t
      - name: ALIGN(wedge_444_32x16[    16 * 32 * 16], 64)
        type: uint8_t
      - name: ALIGN(wedge_444_32x8 [    16 * 32 *  8], 64)
        type: uint8_t
      - name: ALIGN(wedge_444_16x32[    16 * 16 * 32], 64)
        type: uint8_t
      - name: ALIGN(wedge_444_16x16[    16 * 16 * 16], 64)
        type: uint8_t
      - name: ALIGN(wedge_444_16x8 [    16 * 16 *  8], 64)
        type: uint8_t
      - name: ALIGN(wedge_444_8x32 [    16 *  8 * 32], 64)
        type: uint8_t
      - name: ALIGN(wedge_444_8x16 [    16 *  8 * 16], 64)
        type: uint8_t
      - name: ALIGN(wedge_444_8x8  [    16 *  8 *  8], 64)
        type: uint8_t
      - name: ALIGN(wedge_422_16x32[2 * 16 * 16 * 32], 64)
        type: uint8_t
      - name: ALIGN(wedge_422_16x16[2 * 16 * 16 * 16], 64)
        type: uint8_t
      - name: ALIGN(wedge_422_16x8 [2 * 16 * 16 *  8], 64)
        type: uint8_t
      - name: ALIGN(wedge_422_8x32 [2 * 16 *  8 * 32], 64)
        type: uint8_t
      - name: ALIGN(wedge_422_8x16 [2 * 16 *  8 * 16], 64)
        type: uint8_t
      - name: ALIGN(wedge_422_8x8  [2 * 16 *  8 *  8], 64)
        type: uint8_t
      - name: ALIGN(wedge_422_4x32 [2 * 16 *  4 * 32], 64)
        type: uint8_t
      - name: ALIGN(wedge_422_4x16 [2 * 16 *  4 * 16], 64)
        type: uint8_t
      - name: ALIGN(wedge_422_4x8  [2 * 16 *  4 *  8], 64)
        type: uint8_t
      - name: ALIGN(wedge_420_16x16[2 * 16 * 16 * 16], 64)
        type: uint8_t
      - name: ALIGN(wedge_420_16x8 [2 * 16 * 16 *  8], 64)
        type: uint8_t
      - name: ALIGN(wedge_420_16x4 [2 * 16 * 16 *  4], 64)
        type: uint8_t
      - name: ALIGN(wedge_420_8x16 [2 * 16 *  8 * 16], 64)
        type: uint8_t
      - name: ALIGN(wedge_420_8x8  [2 * 16 *  8 *  8], 64)
        type: uint8_t
      - name: ALIGN(wedge_420_8x4  [2 * 16 *  8 *  4], 64)
        type: uint8_t
      - name: ALIGN(wedge_420_4x16 [2 * 16 *  4 * 16], 64)
        type: uint8_t
      - name: ALIGN(wedge_420_4x8  [2 * 16 *  4 *  8], 64)
        type: uint8_t
      - name: ALIGN(wedge_420_4x4  [2 * 16 *  4 *  4], 64)
        type: uint8_t
      - name: ALIGN(ii_dc         [    32 * 32], 64)
        type: uint8_t
      - name: ALIGN(ii_nondc_32x32[3 * 32 * 32], 64)
        type: uint8_t
      - name: ALIGN(ii_nondc_16x32[3 * 16 * 32], 64)
        type: uint8_t
      - name: ALIGN(ii_nondc_16x16[3 * 16 * 16], 64)
        type: uint8_t
      - name: ALIGN(ii_nondc_8x32 [3 *  8 * 32], 64)
        type: uint8_t
      - name: ALIGN(ii_nondc_8x16 [3 *  8 * 16], 64)
        type: uint8_t
      - name: ALIGN(ii_nondc_8x8  [3 *  8 *  8], 64)
        type: uint8_t
      - name: ALIGN(ii_nondc_4x16 [3 *  4 * 16], 64)
        type: uint8_t
      - name: ALIGN(ii_nondc_4x8  [3 *  4 *  8], 32)
        type: uint8_t
      - name: ALIGN(ii_nondc_4x4  [3 *  4 *  4], 16)
        type: uint8_t
      item_type: struct
      name: Dav1dMasks
      pos:
        line_end: 79
        line_start: 32
        source_file: /src/dav1d/src/wedge.h
    typedefs: []
    union: []
- function_names:
  - track_alloc
  - track_free
  - dav1d_track_reuse
  - dav1d_malloc
  - dav1d_alloc_aligned
  - dav1d_realloc
  - dav1d_free
  - dav1d_free_aligned
  - cmp_stats
  - format_tsep
  - dav1d_log_alloc_stats
  - mem_pool_destroy
  - dav1d_mem_pool_push
  - dav1d_mem_pool_pop
  - dav1d_mem_pool_init
  - dav1d_mem_pool_end
  source_file: /src/dav1d/src/mem.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_ALIGN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/dav1d/src/mem.c
      type_or_value: '16'
    structs:
    - fields:
      - name: sz
        type: size_t
      - name: align
        type: unsigned
      - name: type
        type: enum AllocationType
      item_type: struct
      name: Dav1dAllocationData
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/dav1d/src/mem.c
    - fields:
      - name: curr_sz
        type: size_t
      - name: peak_sz
        type: size_t
      - name: num_allocs
        type: unsigned
      - name: num_reuses
        type: unsigned
      item_type: struct
      name: AllocStats
      pos:
        line_end: 51
        line_start: 46
        source_file: /src/dav1d/src/mem.c
    - fields:
      - name: stats
        type: AllocStats
      - name: type
        type: enum AllocationType
      item_type: struct
      name: data[N_ALLOC_TYPES]
      pos:
        line_end: 178
        line_start: 175
        source_file: /src/dav1d/src/mem.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/dequant_tables.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - backup_lpf
  - bytefn
  - filter_plane_cols_y
  - filter_plane_rows_y
  - filter_plane_cols_uv
  - filter_plane_rows_uv
  - bytefn
  - bytefn
  source_file: /src/dav1d/src/lf_apply_tmpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/cdf.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: CdfModeContext
      pos:
        line_end: 94
        line_start: 38
        source_file: /src/dav1d/src/cdf.h
    - fields: []
      item_type: struct
      name: CdfCoefContext
      pos:
        line_end: 110
        line_start: 96
        source_file: /src/dav1d/src/cdf.h
    - fields: []
      item_type: struct
      name: CdfMvComponent
      pos:
        line_end: 121
        line_start: 112
        source_file: /src/dav1d/src/cdf.h
    - fields:
      - name: comp[2]
        type: CdfMvComponent
      item_type: struct
      name: CdfMvContext
      pos:
        line_end: 126
        line_start: 123
        source_file: /src/dav1d/src/cdf.h
    - fields:
      - name: coef
        type: CdfCoefContext
      - name: m
        type: CdfModeContext
      - name: mv
        type: CdfMvContext
      item_type: struct
      name: CdfContext
      pos:
        line_end: 133
        line_start: 128
        source_file: /src/dav1d/src/cdf.h
    - fields:
      - name: '*ref'
        type: Dav1dRef
      - name: data
        type: "union {\n        CdfContext *cdf; // if ref != NULL\n        unsigned
          qcat; // if ref == NULL, from static CDF tables\n    }"
      - name: '*progress'
        type: atomic_uint
      item_type: struct
      name: CdfThreadContext
      pos:
        line_end: 142
        line_start: 135
        source_file: /src/dav1d/src/cdf.h
    typedefs: []
    union: []
- function_names:
  - array_decl
  - array_decl
  source_file: /src/dav1d/src/fg_apply.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - splat_dc
  - cfl_pred
  - dc_gen_top
  - ipred_dc_top_c
  - ipred_cfl_top_c
  - dc_gen_left
  - ipred_dc_left_c
  - ipred_cfl_left_c
  - dc_gen
  - ipred_dc_c
  - ipred_cfl_c
  - ipred_dc_128_c
  - ipred_cfl_128_c
  - ipred_v_c
  - ipred_h_c
  - ipred_paeth_c
  - ipred_smooth_c
  - ipred_smooth_v_c
  - ipred_smooth_h_c
  - get_filter_strength
  - filter_edge
  - get_upsample
  - upsample_edge
  - ipred_z1_c
  - ipred_z2_c
  - ipred_z3_c
  - FILTER
  - FILTER
  - ipred_filter_c
  - cfl_ac_c
  - cfl_ac_fn
  - pal_pred_c
  - bitfn
  source_file: /src/dav1d/src/ipred_tmpl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MULTIPLIER_1x2
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/dav1d/src/ipred_tmpl.c
      type_or_value: '0x5556'
    - item_type: preproc_def
      name: MULTIPLIER_1x4
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/dav1d/src/ipred_tmpl.c
      type_or_value: '0x3334'
    - item_type: preproc_def
      name: BASE_SHIFT
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/dav1d/src/ipred_tmpl.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MULTIPLIER_1x2
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/dav1d/src/ipred_tmpl.c
      type_or_value: '0xAAAB'
    - item_type: preproc_def
      name: MULTIPLIER_1x4
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/dav1d/src/ipred_tmpl.c
      type_or_value: '0x6667'
    - item_type: preproc_def
      name: BASE_SHIFT
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/dav1d/src/ipred_tmpl.c
      type_or_value: '17'
    - item_type: preproc_def
      name: FLT_INCR
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/dav1d/src/ipred_tmpl.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FLT_INCR
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/dav1d/src/ipred_tmpl.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_log_default_callback
  - dav1d_log
  source_file: /src/dav1d/src/log.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/lr_apply.h
  types:
    enum:
    - enumerators:
      - name: LR_RESTORE_Y
        value: 1 << 0
      - name: LR_RESTORE_V
        value: 1 << 2
      - name: LR_RESTORE_U
        value: 1 << 1
      item_type: enum
      name: LrRestorePlanes
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/dav1d/src/lr_apply.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_trailing_bits
  - parse_seq_hdr
  - dav1d_parse_sequence_header
  - read_frame_size
  - tile_log2
  - parse_frame_hdr
  - parse_tile_hdr
  - dav1d_parse_obus
  source_file: /src/dav1d/src/obu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEBUG_SEQ_HDR
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/dav1d/src/obu.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_FRAME_HDR
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/dav1d/src/obu.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_OBU_METADATA
      pos:
        line_end: 1357
        line_start: 1356
        source_file: /src/dav1d/src/obu.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/thread_task.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FRAME_ERROR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/dav1d/src/thread_task.h
      type_or_value: (UINT_MAX - 1)
    - item_type: preproc_def
      name: TILE_ERROR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/src/thread_task.h
      type_or_value: (INT_MAX - 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_generate_grain_y_fn
  - decl_generate_grain_uv_fn
  - decl_fgy_32x32xn_fn
  - decl_fguv_32x32xn_fn
  source_file: /src/dav1d/src/filmgrain.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GRAIN_WIDTH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/dav1d/src/filmgrain.h
      type_or_value: '82'
    - item_type: preproc_def
      name: GRAIN_HEIGHT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/src/filmgrain.h
      type_or_value: '73'
    - item_type: preproc_def
      name: FG_BLOCK_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/dav1d/src/filmgrain.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SCALING_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/dav1d/src/filmgrain.h
      type_or_value: '256'
    - item_type: preproc_def
      name: SCALING_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/src/filmgrain.h
      type_or_value: '4096'
    structs:
    - fields:
      - name: generate_grain_y
        type: generate_grain_y_fn
      - name: generate_grain_uv[3]
        type: generate_grain_uv_fn
      - name: fgy_32x32xn
        type: fgy_32x32xn_fn
      - name: fguv_32x32xn[3]
        type: fguv_32x32xn_fn
      item_type: struct
      name: Dav1dFilmGrainDSPContext
      pos:
        line_end: 79
        line_start: 73
        source_file: /src/dav1d/src/filmgrain.h
    typedefs:
    - item_type: typedef
      name: entry
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/dav1d/src/filmgrain.h
      type: int8_t
    - item_type: typedef
      name: entry
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/dav1d/src/filmgrain.h
      type: int16_t
    - item_type: typedef
      name: (*generate_grain_y_fn)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/dav1d/src/filmgrain.h
      type: decl_generate_grain_y_fn
    - item_type: typedef
      name: (*generate_grain_uv_fn)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/dav1d/src/filmgrain.h
      type: decl_generate_grain_uv_fn
    - item_type: typedef
      name: (*fgy_32x32xn_fn)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/dav1d/src/filmgrain.h
      type: decl_fgy_32x32xn_fn
    - item_type: typedef
      name: (*fguv_32x32xn_fn)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/dav1d/src/filmgrain.h
      type: decl_fguv_32x32xn_fn
    union: []
- function_names: []
  source_file: /src/dav1d/src/qm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - loop_filter
  - iclip_diff
  - loop_filter_h_sb128y_c
  - loop_filter_v_sb128y_c
  - loop_filter_h_sb128uv_c
  - loop_filter_v_sb128uv_c
  - bitfn
  source_file: /src/dav1d/src/loopfilter_tmpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inv_txfm_add_c
  - inv_txfm_fn
  - inv_txfm_fn64
  - inv_txfm_fn32
  - inv_txfm_fn16
  - inv_txfm_fn84
  - inv_txfm_add_wht_wht_4x4_c
  - bitfn
  - assign_itx_all_fn64
  - assign_itx_all_fn32
  - assign_itx_all_fn16
  - assign_itx_all_fn84
  source_file: /src/dav1d/src/itx_tmpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/warpmv.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - iclip_wmp
  - resolve_divisor_32
  - dav1d_get_shear_params
  - resolve_divisor_64
  - get_mult_shift_ndiag
  - get_mult_shift_diag
  - dav1d_set_affine_mv2d
  - dav1d_find_affine_int
  source_file: /src/dav1d/src/warpmv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_golomb
  - get_skip_ctx
  - MERGE_CTX
  - MERGE_CTX
  - get_dc_sign_ctx
  - get_lo_ctx
  - decode_coefs
  - case_sz
  - DECODE_COEFS_CLASS
  - read_coef_tree
  - set_ctx
  - bytefn
  - mc
  - scale_mv
  - obmc
  - warp_affine
  - bytefn
  - bytefn
  - bytefn
  - bytefn
  - bytefn
  - bytefn
  - bytefn
  - bytefn
  - bytefn
  - bytefn
  - bytefn
  - bytefn
  - bytefn
  source_file: /src/dav1d/src/recon_tmpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/lf_mask.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: Av1FilterLUT
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/dav1d/src/lf_mask.h
    - fields:
      - name: type
        type: uint8_t
      - name: filter_h[3]
        type: int8_t
      - name: filter_v[3]
        type: int8_t
      - name: sgr_weights[2]
        type: int8_t
      item_type: struct
      name: Av1RestorationUnit
      pos:
        line_end: 47
        line_start: 41
        source_file: /src/dav1d/src/lf_mask.h
    - fields:
      - name: filter_y[2 /* 0=col, 1=row */][32][3][2]
        type: uint16_t
      - name: filter_uv[2 /* 0=col, 1=row */][32][2][2]
        type: uint16_t
      - name: cdef_idx[4]
        type: int8_t
      - name: noskip_mask[16][2]
        type: uint16_t
      item_type: struct
      name: Av1Filter
      pos:
        line_end: 56
        line_start: 50
        source_file: /src/dav1d/src/lf_mask.h
    - fields:
      - name: lr[3][4]
        type: Av1RestorationUnit
      item_type: struct
      name: Av1Restoration
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/dav1d/src/lf_mask.h
    typedefs: []
    union: []
- function_names:
  - init_internal
  - dav1d_version
  - dav1d_version_api
  - dav1d_default_settings
  - get_stack_size_internal
  - get_stack_size_internal
  - get_num_threads
  - dav1d_get_frame_delay
  - dav1d_open
  - has_grain
  - output_image
  - output_picture_ready
  - drain_picture
  - gen_picture
  - dav1d_send_data
  - dav1d_get_picture
  - dav1d_apply_grain
  - dav1d_flush
  - dav1d_close
  - close_internal
  - dav1d_get_event_flags
  - dav1d_get_decode_error_data_props
  - dav1d_picture_unref
  - dav1d_data_create
  - dav1d_data_wrap
  - dav1d_data_wrap_user_data
  - dav1d_data_unref
  - dav1d_data_props_unref
  source_file: /src/dav1d/src/lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ctx_refill
  - dav1d_msac_decode_subexp
  - ctx_norm
  - dav1d_msac_decode_bool_equi_c
  - dav1d_msac_decode_bool_c
  - dav1d_msac_decode_symbol_adapt_c
  - dav1d_msac_decode_bool_adapt_c
  - dav1d_msac_decode_hi_tok_c
  - dav1d_msac_init
  source_file: /src/dav1d/src/msac.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EC_PROB_SHIFT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/src/msac.c
      type_or_value: '6'
    - item_type: preproc_def
      name: EC_MIN_PROB
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/dav1d/src/msac.c
      type_or_value: 4  // must be <= (1<<EC_PROB_SHIFT)/16
    - item_type: preproc_def
      name: EC_WIN_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/dav1d/src/msac.c
      type_or_value: (sizeof(ec_win) << 3)
    structs: []
    typedefs: []
    union: []
- function_names:
  - pal_idx_finish_c
  - dav1d_pal_dsp_init
  source_file: /src/dav1d/src/pal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_intermediate_bits
  - get_intermediate_bits
  - put_c
  - prep_c
  - FILTER_8TAP
  - FILTER_8TAP2
  - DAV1D_FILTER_8TAP_RND
  - DAV1D_FILTER_8TAP_RND2
  - DAV1D_FILTER_8TAP_RND3
  - DAV1D_FILTER_8TAP_CLIP
  - DAV1D_FILTER_8TAP_CLIP2
  - DAV1D_FILTER_8TAP_CLIP3
  - GET_H_FILTER
  - GET_V_FILTER
  - GET_FILTERS
  - put_8tap_c
  - put_8tap_scaled_c
  - prep_8tap_c
  - prep_8tap_scaled_c
  - filter_fns
  - FILTER_BILIN
  - FILTER_BILIN_RND
  - FILTER_BILIN_CLIP
  - FILTER_BILIN2
  - FILTER_BILIN_RND2
  - FILTER_BILIN_CLIP2
  - put_bilin_c
  - put_bilin_scaled_c
  - prep_bilin_c
  - prep_bilin_scaled_c
  - avg_c
  - w_avg_c
  - mask_c
  - blend_px
  - blend_c
  - blend_v_c
  - blend_h_c
  - w_mask_c
  - w_mask_fns
  - FILTER_WARP_RND
  - FILTER_WARP_CLIP
  - warp_affine_8x8_c
  - warp_affine_8x8t_c
  - emu_edge_c
  - resize_c
  - bitfn
  - init_mc_fns
  source_file: /src/dav1d/src/mc_tmpl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PREP_BIAS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/src/mc_tmpl.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PREP_BIAS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/dav1d/src/mc_tmpl.c
      type_or_value: '8192'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/obu.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/cdef_apply.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_angular_ipred_fn
  - decl_cfl_ac_fn
  - decl_cfl_pred_fn
  - decl_pal_pred_fn
  source_file: /src/dav1d/src/ipred.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: intra_pred[N_IMPL_INTRA_PRED_MODES]
        type: angular_ipred_fn
      - name: cfl_ac[3 /* 420, 422, 444 */]
        type: cfl_ac_fn
      - name: cfl_pred[DC_128_PRED + 1]
        type: cfl_pred_fn
      - name: pal_pred
        type: pal_pred_fn
      item_type: struct
      name: Dav1dIntraPredDSPContext
      pos:
        line_end: 89
        line_start: 80
        source_file: /src/dav1d/src/ipred.h
    typedefs:
    - item_type: typedef
      name: (*angular_ipred_fn)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/dav1d/src/ipred.h
      type: decl_angular_ipred_fn
    - item_type: typedef
      name: (*cfl_ac_fn)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/dav1d/src/ipred.h
      type: decl_cfl_ac_fn
    - item_type: typedef
      name: (*cfl_pred_fn)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/dav1d/src/ipred.h
      type: decl_cfl_pred_fn
    - item_type: typedef
      name: (*pal_pred_fn)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/dav1d/src/ipred.h
      type: decl_pal_pred_fn
    union: []
- function_names:
  - memset_w1
  - memset_w2
  - memset_w4
  - memset_w8
  - memset_w16
  - memset_w32
  source_file: /src/dav1d/src/ctx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_cdef_fn
  - decl_cdef_dir_fn
  source_file: /src/dav1d/src/cdef.h
  types:
    enum:
    - enumerators:
      - name: CDEF_HAVE_LEFT
        value: 1 << 0
      - name: CDEF_HAVE_BOTTOM
        value: 1 << 3
      - name: CDEF_HAVE_TOP
        value: 1 << 2
      - name: CDEF_HAVE_RIGHT
        value: 1 << 1
      item_type: enum
      name: CdefEdgeFlags
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/dav1d/src/cdef.h
    preproc_defs: []
    structs:
    - fields:
      - name: dir
        type: cdef_dir_fn
      - name: fb[3 /* 444/luma, 422, 420 */]
        type: cdef_fn
      item_type: struct
      name: Dav1dCdefDSPContext
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/dav1d/src/cdef.h
    typedefs:
    - item_type: typedef
      name: (*const_left_pixel_row_2px)[2]
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/dav1d/src/cdef.h
      type: pixel
    - item_type: typedef
      name: '*const_left_pixel_row_2px'
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/dav1d/src/cdef.h
      type: void
    - item_type: typedef
      name: (*cdef_fn)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/dav1d/src/cdef.h
      type: decl_cdef_fn
    - item_type: typedef
      name: (*cdef_dir_fn)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/dav1d/src/cdef.h
      type: decl_cdef_dir_fn
    union: []
- function_names:
  - ROUND_UP
  - dav1d_alloc_aligned_internal
  - dav1d_free_aligned_internal
  - dav1d_mem_pool_init
  - dav1d_malloc
  - dav1d_realloc
  - dav1d_alloc_aligned
  - dav1d_free
  - dav1d_free_aligned
  - dav1d_freep_aligned
  source_file: /src/dav1d/src/mem.h
  types:
    enum:
    - enumerators:
      - name: ALLOC_COEF
      - name: ALLOC_CDEF
      - name: ALLOC_LF
      - name: ALLOC_PAL
      - name: ALLOC_TILE
      - name: ALLOC_COMMON_CTX
      - name: ALLOC_LR
      - name: ALLOC_REFMVS
      - name: N_ALLOC_TYPES
      - name: ALLOC_PIC
      - name: ALLOC_BLOCK
      - name: ALLOC_DAV1DDATA
      - name: ALLOC_OBU_HDR
      - name: ALLOC_SEGMAP
      - name: ALLOC_PIC_CTX
      - name: ALLOC_CDF
      - name: ALLOC_IPRED
      - name: ALLOC_THREAD_CTX
      - name: ALLOC_OBU_META
      item_type: enum
      name: AllocationType
      pos:
        line_end: 64
        line_start: 44
        source_file: /src/dav1d/src/mem.h
    preproc_defs:
    - item_type: preproc_def
      name: TRACK_HEAP_ALLOCATIONS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/dav1d/src/mem.h
      type_or_value: '0'
    structs:
    - fields:
      - name: '*next'
        type: struct Dav1dMemPoolBuffer
      - name: size
        type: size_t
      item_type: struct
      name: Dav1dMemPoolBuffer
      pos:
        line_end: 69
        line_start: 66
        source_file: /src/dav1d/src/mem.h
    - fields:
      - name: lock
        type: pthread_mutex_t
      - name: '*buf'
        type: Dav1dMemPoolBuffer
      - name: ref_cnt
        type: int
      - name: end
        type: int
      item_type: struct
      name: Dav1dMemPool
      pos:
        line_end: 79
        line_start: 71
        source_file: /src/dav1d/src/mem.h
    typedefs: []
    union: []
- function_names:
  - sm_flag
  - sm_uv_flag
  source_file: /src/dav1d/src/ipred_prepare.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ANGLE_USE_EDGE_FILTER_FLAG
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/dav1d/src/ipred_prepare.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: ANGLE_SMOOTH_EDGE_FLAG
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/dav1d/src/ipred_prepare.h
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_lr_filter_fn
  source_file: /src/dav1d/src/looprestoration.h
  types:
    enum:
    - enumerators:
      - name: LR_HAVE_LEFT
        value: 1 << 0
      - name: LR_HAVE_BOTTOM
        value: 1 << 3
      - name: LR_HAVE_TOP
        value: 1 << 2
      - name: LR_HAVE_RIGHT
        value: 1 << 1
      item_type: enum
      name: LrEdgeFlags
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/dav1d/src/looprestoration.h
    preproc_defs: []
    structs:
    - fields:
      - name: wiener[2]
        type: looprestorationfilter_fn
      - name: sgr[3]
        type: looprestorationfilter_fn
      item_type: struct
      name: Dav1dLoopRestorationDSPContext
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/dav1d/src/looprestoration.h
    typedefs:
    - item_type: typedef
      name: (*const_left_pixel_row)[4]
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/dav1d/src/looprestoration.h
      type: pixel
    - item_type: typedef
      name: '*const_left_pixel_row'
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/dav1d/src/looprestoration.h
      type: void
    - item_type: typedef
      name: (*looprestorationfilter_fn)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/dav1d/src/looprestoration.h
      type: decl_lr_filter_fn
    union:
    - fields:
      - name: sgr
        type: "struct {\n        uint32_t s0, s1;\n        int16_t w0, w1;\n    }"
      item_type: union
      name: LooprestorationParams
      pos:
        line_end: 54
        line_start: 48
        source_file: /src/dav1d/src/looprestoration.h
- function_names:
  - F
  - F
  source_file: /src/dav1d/src/tables.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_data_create_internal
  - dav1d_data_wrap_internal
  - dav1d_data_wrap_user_data_internal
  - dav1d_data_ref
  - dav1d_data_props_copy
  - dav1d_data_props_set_defaults
  - dav1d_data_props_unref_internal
  - dav1d_data_unref_internal
  source_file: /src/dav1d/src/data.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - subsample
  - transpose
  - untriangle
  - dav1d_init_qm_tables
  source_file: /src/dav1d/src/qm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lr_stripe
  - backup4xU
  - lr_sbrow
  - bytefn
  source_file: /src/dav1d/src/lr_apply_tmpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_itx_fn
  - decl_itx2_fns
  - decl_itx12_fns
  - decl_itx16_fns
  - decl_itx17_fns
  - assign_itx_fn
  - assign_itx1_fn
  - assign_itx2_fn
  - assign_itx12_fn
  - assign_itx16_fn
  - assign_itx17_fn
  source_file: /src/dav1d/src/itx.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: itxfm_add[N_RECT_TX_SIZES][N_TX_TYPES_PLUS_LL]
        type: itxfm_fn
      item_type: struct
      name: Dav1dInvTxfmDSPContext
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/dav1d/src/itx.h
    typedefs:
    - item_type: typedef
      name: (*itxfm_fn)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/dav1d/src/itx.h
      type: decl_itx_fn
    union: []
- function_names:
  - dav1d_init_thread
  - dav1d_set_thread_name
  - thread_entrypoint
  - dav1d_pthread_create
  - dav1d_pthread_join
  - dav1d_pthread_once
  source_file: /src/dav1d/src/win32/thread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_loopfilter_sb_fns
  - loop_filter_dsp_init_x86
  source_file: /src/dav1d/src/x86/loopfilter.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - refmvs_dsp_init_x86
  source_file: /src/dav1d/src/x86/refmvs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X
  - dav1d_get_cpu_flags_x86
  source_file: /src/dav1d/src/x86/cpu.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: eax
        type: uint32_t
      item_type: struct
      name: CpuidRegisters
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/dav1d/src/x86/cpu.c
    typedefs: []
    union:
    - fields:
      - name: r
        type: CpuidRegisters
      item_type: union
      name: cpu
      pos:
        line_end: 53
        line_start: 47
        source_file: /src/dav1d/src/x86/cpu.c
- function_names:
  - decl_fn
  - init_mc_fn
  - init_mct_fn
  - init_mc_scaled_fn
  - init_mct_scaled_fn
  - mc_dsp_init_x86
  source_file: /src/dav1d/src/x86/mc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/x86/cpu.h
  types:
    enum:
    - enumerators:
      - name: DAV1D_X86_CPU_FLAG_SSE2
        value: 1 << 0
      - name: DAV1D_X86_CPU_FLAG_AVX2
        value: 1 << 3
      - name: DAV1D_X86_CPU_FLAG_SSE41
        value: 1 << 2
      - name: DAV1D_X86_CPU_FLAG_AVX512ICL
        value: 1 << 4
      - name: DAV1D_X86_CPU_FLAG_SSSE3
        value: 1 << 1
      - name: DAV1D_X86_CPU_FLAG_SLOW_GATHER
        value: 1 << 5
      item_type: enum
      name: CpuFlags
      pos:
        line_end: 39
        line_start: 30
        source_file: /src/dav1d/src/x86/cpu.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pal_dsp_init_x86
  source_file: /src/dav1d/src/x86/pal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_msac_decode_symbol_adapt16
  - msac_init_x86
  source_file: /src/dav1d/src/x86/msac.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt4
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/dav1d/src/x86/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt4_sse2
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt8
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/dav1d/src/x86/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt8_sse2
    - item_type: preproc_def
      name: dav1d_msac_decode_hi_tok
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/dav1d/src/x86/msac.h
      type_or_value: dav1d_msac_decode_hi_tok_sse2
    - item_type: preproc_def
      name: dav1d_msac_decode_bool_adapt
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/dav1d/src/x86/msac.h
      type_or_value: dav1d_msac_decode_bool_adapt_sse2
    - item_type: preproc_def
      name: dav1d_msac_decode_bool_equi
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/dav1d/src/x86/msac.h
      type_or_value: dav1d_msac_decode_bool_equi_sse2
    - item_type: preproc_def
      name: dav1d_msac_decode_bool
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/dav1d/src/x86/msac.h
      type_or_value: dav1d_msac_decode_bool_sse2
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt16
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/dav1d/src/x86/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt16_sse2
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_fg_fns
  - film_grain_dsp_init_x86
  source_file: /src/dav1d/src/x86/filmgrain.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_fn
  - init_fn
  - init_angular_ipred_fn
  - init_cfl_pred_fn
  - init_cfl_ac_fn
  - intra_pred_dsp_init_x86
  source_file: /src/dav1d/src/x86/ipred.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_cdef_fns
  - cdef_dsp_init_x86
  source_file: /src/dav1d/src/x86/cdef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_wiener_filter_fns
  - decl_sgr_filter_fns
  - loop_restoration_dsp_init_x86
  source_file: /src/dav1d/src/x86/looprestoration.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BF_BPC
  - decl_itx_fns
  - decl_itx2_bpc_fns
  - decl_itx12_bpc_fns
  - decl_itx16_bpc_fns
  - decl_itx_bpc_fns
  - itx_dsp_init_x86
  - assign_itx_bpc_fn
  - assign_itx1_bpc_fn
  - assign_itx2_bpc_fn
  - assign_itx12_bpc_fn
  - assign_itx16_bpc_fn
  source_file: /src/dav1d/src/x86/itx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_get_cpu_flags_riscv
  source_file: /src/dav1d/src/riscv/cpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HWCAP_RVV
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/dav1d/src/riscv/cpu.c
      type_or_value: (1 << ('v' - 'a'))
    structs: []
    typedefs: []
    union: []
- function_names:
  - mc_dsp_init_riscv
  source_file: /src/dav1d/src/riscv/mc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_get_vlen
  source_file: /src/dav1d/src/riscv/cpu.h
  types:
    enum:
    - enumerators:
      - name: DAV1D_RISCV_CPU_FLAG_V
        value: 1 << 0
      item_type: enum
      name: CpuFlags
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/dav1d/src/riscv/cpu.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pal_dsp_init_riscv
  source_file: /src/dav1d/src/riscv/pal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - intra_pred_dsp_init_riscv
  source_file: /src/dav1d/src/riscv/ipred.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cdef_dsp_init_riscv
  source_file: /src/dav1d/src/riscv/cdef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decl_itx_fns
  - itx_dsp_init_riscv
  source_file: /src/dav1d/src/riscv/itx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - loop_filter_dsp_init_loongarch
  source_file: /src/dav1d/src/loongarch/loopfilter.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - refmvs_dsp_init_loongarch
  source_file: /src/dav1d/src/loongarch/refmvs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_get_cpu_flags_loongarch
  source_file: /src/dav1d/src/loongarch/cpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LA_HWCAP_LSX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/src/loongarch/cpu.c
      type_or_value: ( 1 << 4 )
    - item_type: preproc_def
      name: LA_HWCAP_LASX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/dav1d/src/loongarch/cpu.c
      type_or_value: ( 1 << 5 )
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_mc_fn
  - init_mct_fn
  - mc_dsp_init_loongarch
  source_file: /src/dav1d/src/loongarch/mc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/loongarch/cpu.h
  types:
    enum:
    - enumerators:
      - name: DAV1D_LOONGARCH_CPU_FLAG_LSX
        value: 1 << 0
      - name: DAV1D_LOONGARCH_CPU_FLAG_LASX
        value: 1 << 1
      item_type: enum
      name: CpuFlags
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/dav1d/src/loongarch/cpu.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/loongarch/msac.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt4
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/src/loongarch/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt4_lsx
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt8
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/dav1d/src/loongarch/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt8_lsx
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt16
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/dav1d/src/loongarch/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt16_lsx
    - item_type: preproc_def
      name: dav1d_msac_decode_bool_adapt
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/dav1d/src/loongarch/msac.h
      type_or_value: dav1d_msac_decode_bool_adapt_lsx
    - item_type: preproc_def
      name: dav1d_msac_decode_bool
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/dav1d/src/loongarch/msac.h
      type_or_value: dav1d_msac_decode_bool_lsx
    - item_type: preproc_def
      name: dav1d_msac_decode_bool_equi
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/dav1d/src/loongarch/msac.h
      type_or_value: dav1d_msac_decode_bool_equi_lsx
    - item_type: preproc_def
      name: dav1d_msac_decode_hi_tok
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/dav1d/src/loongarch/msac.h
      type_or_value: dav1d_msac_decode_hi_tok_lsx
    structs: []
    typedefs: []
    union: []
- function_names:
  - padding
  - ALIGN_STK_16
  - boxsum3_lasx
  source_file: /src/dav1d/src/loongarch/looprestoration_inner.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REST_UNIT_STRIDE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/dav1d/src/loongarch/looprestoration_inner.c
      type_or_value: (400)
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_fn
  - init_angular_ipred_fn
  - init_cfl_pred_fn
  - intra_pred_dsp_init_loongarch
  source_file: /src/dav1d/src/loongarch/ipred.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MULTIPLIER_1x2
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/src/loongarch/ipred.h
      type_or_value: '0x5556'
    - item_type: preproc_def
      name: MULTIPLIER_1x4
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/dav1d/src/loongarch/ipred.h
      type_or_value: '0x3334'
    - item_type: preproc_def
      name: BASE_SHIFT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/dav1d/src/loongarch/ipred.h
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cdef_dsp_init_loongarch
  source_file: /src/dav1d/src/loongarch/cdef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - loop_restoration_dsp_init_loongarch
  source_file: /src/dav1d/src/loongarch/looprestoration.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - itx_dsp_init_loongarch
  source_file: /src/dav1d/src/loongarch/itx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - loop_filter_dsp_init_ppc
  source_file: /src/dav1d/src/ppc/loopfilter.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - iclip_vec
  - APPLY_FILTER_H
  - wiener_filter_h_vsx
  - iclip_u8_vec
  - APPLY_FILTER_V
  - LOAD_AND_APPLY_FILTER_V
  - dav1d_wiener_filter_vsx
  source_file: /src/dav1d/src/ppc/looprestoration_tmpl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REST_UNIT_STRIDE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/dav1d/src/ppc/looprestoration_tmpl.c
      type_or_value: (400)
    structs: []
    typedefs: []
    union: []
- function_names:
  - i8h_to_i16
  - i8l_to_i16
  - u8h_to_i16
  - u8l_to_i16
  - u8h_to_u16
  - u8l_to_u16
  - u16h_to_i32
  - i16h_to_i32
  - u16l_to_i32
  - i16l_to_i32
  source_file: /src/dav1d/src/ppc/dav1d_types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: u8x16
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector unsigned char
    - item_type: preproc_def
      name: i8x16
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector signed char
    - item_type: preproc_def
      name: b8x16
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector bool char
    - item_type: preproc_def
      name: u16x8
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector unsigned short
    - item_type: preproc_def
      name: i16x8
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector signed short
    - item_type: preproc_def
      name: b16x8
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector bool short
    - item_type: preproc_def
      name: u32x4
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector unsigned int
    - item_type: preproc_def
      name: i32x4
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector signed int
    - item_type: preproc_def
      name: b32x4
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector bool int
    - item_type: preproc_def
      name: u64x2
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector unsigned long long
    - item_type: preproc_def
      name: i64x2
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector signed long long
    - item_type: preproc_def
      name: b64x2
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/dav1d/src/ppc/dav1d_types.h
      type_or_value: vector bool long long
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_get_cpu_flags_ppc
  source_file: /src/dav1d/src/ppc/cpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_AUX
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/dav1d/src/ppc/cpu.c
      type_or_value: ((HAVE_GETAUXVAL || HAVE_ELF_AUX_INFO) && ARCH_PPC64LE)
    structs: []
    typedefs: []
    union: []
- function_names:
  - mc_dsp_init_ppc
  source_file: /src/dav1d/src/ppc/mc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - assert_eq
  - MERGE_I32
  - DECLARE_MERGE_I32
  - TRANSPOSE4_I32
  - TRANSPOSE8_I32
  - TRANSPOSE4x16_I32
  source_file: /src/dav1d/src/ppc/utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vconstrain
  - copy4xN
  - copy8xN
  - max_mask
  - LOAD_PIX
  - LOAD_PIX4
  - LOAD_DIR
  - LOAD_DIR4
  - CONSTRAIN
  - MIN_MAX
  - PRI_0_UPDATE_SUM
  - UPDATE_SUM
  - SEC_0_UPDATE_SUM
  - cdef_fn
  source_file: /src/dav1d/src/ppc/cdef_tmpl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SETUP_MINMAX
      pos:
        line_end: 256
        line_start: 252
        source_file: /src/dav1d/src/ppc/cdef_tmpl.c
      type_or_value: "i16x8 max = px; \\\n    i16x8 min = px; \\\n"
    - item_type: preproc_def
      name: MAKE_TAPS
      pos:
        line_end: 270
        line_start: 266
        source_file: /src/dav1d/src/ppc/cdef_tmpl.c
      type_or_value: "const int16_t tap_odd = (pri_strength >> bitdepth_min_8) & 1;
        \\\n    const i16x8 tap0 = vec_splats((int16_t)(4 - tap_odd)); \\\n    const
        i16x8 tap1 = vec_splats((int16_t)(2 + tap_odd));"
    - item_type: preproc_def
      name: BIAS
      pos:
        line_end: 293
        line_start: 289
        source_file: /src/dav1d/src/ppc/cdef_tmpl.c
      type_or_value: "i16x8 bias = vec_and((i16x8)vec_cmplt(sum, vec_splat_s16(0)),
        vec_splat_s16(1)); \\\n    bias = vec_sub(vec_splat_s16(8), bias); \\\n"
    - item_type: preproc_def
      name: STORE4
      pos:
        line_end: 308
        line_start: 293
        source_file: /src/dav1d/src/ppc/cdef_tmpl.c
      type_or_value: "dst[0] = vdst[0]; \\\n    dst[1] = vdst[1]; \\\n    dst[2] =
        vdst[2]; \\\n    dst[3] = vdst[3]; \\\n\\\n    tmp += 8; \\\n    dst += PXSTRIDE(dst_stride);
        \\\n    dst[0] = vdst[4]; \\\n    dst[1] = vdst[5]; \\\n    dst[2] = vdst[6];
        \\\n    dst[3] = vdst[7]; \\\n\\\n    tmp += 8; \\\n    dst += PXSTRIDE(dst_stride);"
    - item_type: preproc_def
      name: STORE4_CLAMPED
      pos:
        line_end: 314
        line_start: 309
        source_file: /src/dav1d/src/ppc/cdef_tmpl.c
      type_or_value: "BIAS \\\n    i16x8 unclamped = vec_add(px, vec_sra(vec_add(sum,
        bias), vec_splat_u16(4))); \\\n    i16x8 vdst = vec_max(vec_min(unclamped,
        max), min); \\\n    STORE4"
    - item_type: preproc_def
      name: STORE4_UNCLAMPED
      pos:
        line_end: 319
        line_start: 315
        source_file: /src/dav1d/src/ppc/cdef_tmpl.c
      type_or_value: "BIAS \\\n    i16x8 vdst = vec_add(px, vec_sra(vec_add(sum, bias),
        vec_splat_u16(4))); \\\n    STORE4"
    - item_type: preproc_def
      name: STORE8
      pos:
        line_end: 332
        line_start: 320
        source_file: /src/dav1d/src/ppc/cdef_tmpl.c
      type_or_value: "dst[0] = vdst[0]; \\\n    dst[1] = vdst[1]; \\\n    dst[2] =
        vdst[2]; \\\n    dst[3] = vdst[3]; \\\n    dst[4] = vdst[4]; \\\n    dst[5]
        = vdst[5]; \\\n    dst[6] = vdst[6]; \\\n    dst[7] = vdst[7]; \\\n\\\n    tmp
        += 16; \\\n    dst += PXSTRIDE(dst_stride);"
    - item_type: preproc_def
      name: STORE8_CLAMPED
      pos:
        line_end: 338
        line_start: 333
        source_file: /src/dav1d/src/ppc/cdef_tmpl.c
      type_or_value: "BIAS \\\n    i16x8 unclamped = vec_add(px, vec_sra(vec_add(sum,
        bias), vec_splat_u16(4))); \\\n    i16x8 vdst = vec_max(vec_min(unclamped,
        max), min); \\\n    STORE8"
    - item_type: preproc_def
      name: STORE8_UNCLAMPED
      pos:
        line_end: 343
        line_start: 339
        source_file: /src/dav1d/src/ppc/cdef_tmpl.c
      type_or_value: "BIAS \\\n    i16x8 vdst = vec_add(px, vec_sra(vec_add(sum, bias),
        vec_splat_u16(4))); \\\n    STORE8"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/ppc/cpu.h
  types:
    enum:
    - enumerators:
      - name: DAV1D_PPC_CPU_FLAG_VSX
        value: 1 << 0
      - name: DAV1D_PPC_CPU_FLAG_PWR9
        value: 1 << 1
      item_type: enum
      name: CpuFlags
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/dav1d/src/ppc/cpu.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DECLARE_ADD_16HL
  - ADD_16HL
  - ADD_AND_SHIFT4
  - ADD_AND_SHIFT8
  - PACK_AND_SEL
  - UNPACK_16
  - store_h_4
  - store_h_8
  - MERGEH_4
  - MERGEL_4
  - MERGEH_U16_0123
  - MERGEHL_U16_0123
  - MERGE_U16_0123
  - MERGEH_U32_LINE
  - MERGEL_U32_LINE
  - MERGE_U32
  - MERGEHL_U8
  - MERGEHL_U16
  - MERGEHL_U32
  - loop_filter_h_4_all
  - loop_filter_h_6_all
  - UNPACK_16
  - LOAD4_H
  - loop_filter_v_4_all
  - loop_filter_v_6_all
  - UNPACK_16
  - LPF
  - LPF
  - LPF
  - LPF
  - LPF
  - LPF
  source_file: /src/dav1d/src/ppc/loopfilter_tmpl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dst
      pos:
        line_end: 53
        line_start: 43
        source_file: /src/dav1d/src/ppc/loopfilter_tmpl.c
      type_or_value: "+= stridea; \\\n    u8x16 idx##3 = vec_xl(0, dst); "
    - item_type: preproc_def
      name: u8x16
      pos:
        line_end: 58
        line_start: 53
        source_file: /src/dav1d/src/ppc/loopfilter_tmpl.c
      type_or_value: 'idx##_23 = vec_mergeh(idx##2, idx##3); '
    - item_type: preproc_def
      name: APPLY_4
      pos:
        line_end: 126
        line_start: 83
        source_file: /src/dav1d/src/ppc/loopfilter_tmpl.c
      type_or_value: "b8x16 hev = vec_cmpgt(max_a_p1p0_q1q0, H); \\\n \\\n    i8x16
        ps1 = (i8x16)vec_xor(p1, s); \\\n    i8x16 ps0 = (i8x16)vec_xor(p0, s); \\\n
        \   i8x16 qs0 = (i8x16)vec_xor(q0, s); \\\n    i8x16 qs1 = (i8x16)vec_xor(q1,
        s); \\\n    i8x16 f0 = vec_and(vec_subs(ps1, qs1), hev); \\\n    i16x8 q0sh
        = (i16x8)q0h; \\\n    i16x8 q0sl = (i16x8)q0l; \\\n    i16x8 p0sh = (i16x8)p0h;
        \\\n    i16x8 p0sl = (i16x8)p0l; \\\n    i16x8 f0h = i8h_to_i16(f0); \\\n
        \   i16x8 f0l = i8l_to_i16(f0); \\\n    i16x8 d0h = vec_sub(q0sh, p0sh); \\\n
        \   i16x8 d0l = vec_sub(q0sl, p0sl); \\\n    u8x16 v3u8 = vec_splat_u8(3);
        \\\n    i16x8 d0h_2 = vec_add(d0h, d0h); \\\n    i16x8 d0l_2 = vec_add(d0l,
        d0l); \\\n    u8x16 v4u8 = vec_splat_u8(4); \\\n    i16x8 f0_d0h = vec_add(d0h,
        f0h); \\\n    i16x8 f0_d0l = vec_add(d0l, f0l); \\\n    i16x8 fh = vec_add(d0h_2,
        f0_d0h); \\\n    i16x8 fl = vec_add(d0l_2, f0_d0l); \\\n    i8x16 f = vec_packs(fh,
        fl); \\\n    i8x16 f1 = vec_adds(f, (i8x16)v4u8); \\\n    i8x16 f2 = vec_adds(f,
        (i8x16)v3u8); \\\n    f1 = vec_sra(f1, v3u8); \\\n    f2 = vec_sra(f2, v3u8);
        \\\n    f1 = vec_and(f1, fm); \\\n    f2 = vec_and(f2, fm); \\\n    i8x16
        f3 = vec_adds(f1, (i8x16)v1u8); \\\n    b8x16 m3 = vec_and(~hev, (b8x16)fm);
        \\\n    f3 = vec_sra(f3, v1u8); \\\n    f3 = vec_and(f3, m3); \\\n    i8x16
        op0s = vec_adds(ps0, f2); \\\n    i8x16 oq0s = vec_subs(qs0, f1); \\\n    i8x16
        oq1s = vec_subs(qs1, f3); \\\n    i8x16 op1s = vec_adds(ps1, f3); \\\n    p0
        = (u8x16)vec_xor(op0s, s); \\\n    q0 = (u8x16)vec_xor(oq0s, s); \\\n    q1
        = (u8x16)vec_xor(oq1s, s); \\\n    p1 = (u8x16)vec_xor(op1s, s);"
    - item_type: preproc_def
      name: APPLY_8
      pos:
        line_end: 167
        line_start: 127
        source_file: /src/dav1d/src/ppc/loopfilter_tmpl.c
      type_or_value: "DECLARE_ADD_16HL(p1p0, p1, p0) \\\n    DECLARE_ADD_16HL(p2q0,
        p2, q0) \\\n    DECLARE_ADD_16HL(q1q2, q1, q2) \\\n    DECLARE_ADD_16HL(p3p3,
        p3, p3) \\\n    DECLARE_ADD_16HL(q0q3, q0, q3) \\\n    DECLARE_ADD_16HL(p3p2,
        p3, p2) \\\n    DECLARE_ADD_16HL(p1q1, p1, q1) \\\n    DECLARE_ADD_16HL(p3p0,
        p3, p0) \\\n    DECLARE_ADD_16HL(p0q2, p0, q2) \\\n    DECLARE_ADD_16HL(q1q3,
        q1, q3) \\\n    DECLARE_ADD_16HL(q3q3, q3, q3) \\\n    DECLARE_ADD_16HL(q0q1q2q3,
        q0q3, q1q2) \\\n    DECLARE_ADD_16HL(p2p1p0q0, p1p0, p2q0) \\\n    DECLARE_ADD_16HL(p3p3p3p2,
        p3p3, p3p2) \\\n    DECLARE_ADD_16HL(p3p3p1q1, p3p3, p1q1) \\\n    DECLARE_ADD_16HL(p3p0q1q2,
        p3p0, q1q2) \\\n    DECLARE_ADD_16HL(p1p0q1q3, p1p0, q1q3) \\\n    DECLARE_ADD_16HL(p0q2q3q3,
        p0q2, q3q3) \\\n \\\n    DECLARE_ADD_16HL(op2, p3p3p3p2, p2p1p0q0) \\\n    DECLARE_ADD_16HL(op1,
        p3p3p1q1, p2p1p0q0) \\\n    DECLARE_ADD_16HL(op0, p3p0q1q2, p2p1p0q0) \\\n
        \   DECLARE_ADD_16HL(oq0, p2p1p0q0, q0q1q2q3) \\\n    DECLARE_ADD_16HL(oq1,
        p1p0q1q3, q0q1q2q3) \\\n    DECLARE_ADD_16HL(oq2, p0q2q3q3, q0q1q2q3) \\\n
        \\\n    ADD_AND_SHIFT4(op2) \\\n    ADD_AND_SHIFT4(op1) \\\n    ADD_AND_SHIFT4(op0)
        \\\n    ADD_AND_SHIFT4(oq0) \\\n    ADD_AND_SHIFT4(oq1) \\\n    ADD_AND_SHIFT4(oq2)
        \\\n \\\n    p2 = PACK_AND_SEL(p2, apply_8); \\\n    p1 = PACK_AND_SEL(p1,
        apply_8); \\\n    p0 = PACK_AND_SEL(p0, apply_8); \\\n    q0 = PACK_AND_SEL(q0,
        apply_8); \\\n    q1 = PACK_AND_SEL(q1, apply_8); \\\n    q2 = PACK_AND_SEL(q2,
        apply_8);"
    - item_type: preproc_def
      name: APPLY_16
      pos:
        line_end: 266
        line_start: 168
        source_file: /src/dav1d/src/ppc/loopfilter_tmpl.c
      type_or_value: "DECLARE_ADD_16HL(p6p6, p6, p6) \\\n    DECLARE_ADD_16HL(p6p5,
        p6, p5) \\\n    DECLARE_ADD_16HL(p6p4, p6, p4) \\\n    DECLARE_ADD_16HL(p4p3,
        p4, p3) \\\n    DECLARE_ADD_16HL(p2p1, p2, p1) \\\n    DECLARE_ADD_16HL(p2q2,
        p2, q2) \\\n    DECLARE_ADD_16HL(p3q1, p3, q1) \\\n    DECLARE_ADD_16HL(p0q0,
        p0, q0) \\\n    DECLARE_ADD_16HL(p0q1, p0, q1) \\\n    DECLARE_ADD_16HL(p1q3,
        p1, q3) \\\n    DECLARE_ADD_16HL(p1q0, p1, q0) \\\n    DECLARE_ADD_16HL(p1q5,
        p1, q5) \\\n    DECLARE_ADD_16HL(q3q4, q3, q4) \\\n    DECLARE_ADD_16HL(q2q5,
        q2, q5) \\\n    DECLARE_ADD_16HL(q1q6, q1, q6) \\\n    DECLARE_ADD_16HL(q0q1,
        q0, q1) \\\n    DECLARE_ADD_16HL(q6q6, q6, q6) \\\n    DECLARE_ADD_16HL(q2q6,
        q2, q6) \\\n    DECLARE_ADD_16HL(q3q6, q3, q6) \\\n    DECLARE_ADD_16HL(q4q6,
        q4, q6) \\\n    DECLARE_ADD_16HL(p5q0, p5, q0) \\\n \\\n    DECLARE_ADD_16HL(p6q2,
        p6, q2) \\\n    DECLARE_ADD_16HL(p6p6p6p4, p6p6, p6p4) \\\n    DECLARE_ADD_16HL(p6p5p2p1,
        p6p5, p2p1) \\\n    DECLARE_ADD_16HL(p4p3p0q0, p4p3, p0q0) \\\n    DECLARE_ADD_16HL(p2q2p3q1,
        p2q2, p3q1) \\\n    DECLARE_ADD_16HL(p6p5p6p6, p6p5, p6p6) \\\n    DECLARE_ADD_16HL(p6p5p3q1,
        p6p5, p3q1) \\\n    DECLARE_ADD_16HL(p6p6p1q3, p6p6, p1q3) \\\n    DECLARE_ADD_16HL(q2q5q3q4,
        q2q5, q3q4) \\\n    DECLARE_ADD_16HL(p2p1q1q6, p2p1, q1q6) \\\n    DECLARE_ADD_16HL(p0q0q3q6,
        p0q0, q3q6) \\\n    DECLARE_ADD_16HL(q4q6q6q6, q4q6, q6q6) \\\n    u16x8 q5q6q6q6h
        = vec_madd(v3u16, q6h, q5h); \\\n    u16x8 q5q6q6q6l = vec_madd(v3u16, q6l,
        q5l); \\\n    DECLARE_ADD_16HL(p0q0q1q6, p0q0, q1q6) \\\n    DECLARE_ADD_16HL(p0q1q3q4,
        p0q1, q3q4) \\\n \\\n    DECLARE_ADD_16HL(p6q2p2p1, p6q2, p2p1) \\\n    DECLARE_ADD_16HL(p1q0q2q5,
        p1q0, q2q5) \\\n    DECLARE_ADD_16HL(p0q1p5q0, p0q1, p5q0) \\\n    DECLARE_ADD_16HL(q0q1q2q6,
        q0q1, q2q6) \\\n    DECLARE_ADD_16HL(p3q1q2q6, p3q1, q2q6) \\\n    DECLARE_ADD_16HL(q2q6q4q6,
        q2q6, q4q6) \\\n    DECLARE_ADD_16HL(q3q6p1q5, q3q6, p1q5) \\\n \\\n    DECLARE_ADD_16HL(p4p3p0q0p2p1q1q6,
        p4p3p0q0, p2p1q1q6) \\\n    DECLARE_ADD_16HL(p6p5p2p1p4p3p0q0, p6p5p2p1, p4p3p0q0)
        \\\n    DECLARE_ADD_16HL(p2p1q1q6q2q5q3q4, p2p1q1q6, q2q5q3q4) \\\n    DECLARE_ADD_16HL(q2q5q3q4q4q6q6q6,
        q2q5q3q4, q4q6q6q6) \\\n    DECLARE_ADD_16HL(p6p5p2p1p4p3p0q0p2q2p3q1, p6p5p2p1p4p3p0q0,
        p2q2p3q1) \\\n    DECLARE_ADD_16HL(p6p6p6p4p6p5p2p1p4p3p0q0, p6p6p6p4, p6p5p2p1p4p3p0q0)
        \\\n    DECLARE_ADD_16HL(p4p3p0q0p2p1q1q6q2q5q3q4, p4p3p0q0p2p1q1q6, q2q5q3q4)
        \\\n    DECLARE_ADD_16HL(p2p1q1q6q2q5q3q4p0q0q3q6, p2p1q1q6q2q5q3q4, p0q0q3q6)
        \\\n    DECLARE_ADD_16HL(p0q0q1q6q2q5q3q4q4q6q6q6, p0q0q1q6, q2q5q3q4q4q6q6q6)
        \\\n    DECLARE_ADD_16HL(p6p5p2p1p4p3p0q0p0q1q3q4, p6p5p2p1p4p3p0q0, p0q1q3q4)
        \\\n \\\n    DECLARE_ADD_16HL(op5, p6p6p6p4p6p5p2p1p4p3p0q0, p6p5p6p6) \\\n
        \   DECLARE_ADD_16HL(op4, p6p6p6p4p6p5p2p1p4p3p0q0, p6p5p3q1) \\\n    DECLARE_ADD_16HL(op3,
        p6p6p6p4, p6p5p2p1p4p3p0q0p2q2p3q1) \\\n    DECLARE_ADD_16HL(op2, p6p6p1q3,
        p6p5p2p1p4p3p0q0p2q2p3q1) \\\n    DECLARE_ADD_16HL(op1, p6p5p2p1p4p3p0q0p0q1q3q4,
        p6q2p2p1) \\\n    DECLARE_ADD_16HL(op0, p6p5p2p1p4p3p0q0p0q1q3q4, p1q0q2q5)
        \\\n    DECLARE_ADD_16HL(oq0, p4p3p0q0p2p1q1q6q2q5q3q4, p0q1p5q0) \\\n    DECLARE_ADD_16HL(oq1,
        p4p3p0q0p2p1q1q6q2q5q3q4, q0q1q2q6) \\\n    DECLARE_ADD_16HL(oq2, p2p1q1q6q2q5q3q4p0q0q3q6,
        p3q1q2q6) \\\n    DECLARE_ADD_16HL(oq3, p2p1q1q6q2q5q3q4p0q0q3q6, q2q6q4q6)
        \\\n    DECLARE_ADD_16HL(oq4, p0q0q1q6q2q5q3q4q4q6q6q6, q3q6p1q5) \\\n    DECLARE_ADD_16HL(oq5,
        p0q0q1q6q2q5q3q4q4q6q6q6, q5q6q6q6) \\\n \\\n    ADD_AND_SHIFT8(op5) \\\n
        \   ADD_AND_SHIFT8(op4) \\\n    ADD_AND_SHIFT8(op3) \\\n    ADD_AND_SHIFT8(op2)
        \\\n    ADD_AND_SHIFT8(op1) \\\n    ADD_AND_SHIFT8(op0) \\\n    ADD_AND_SHIFT8(oq0)
        \\\n    ADD_AND_SHIFT8(oq1) \\\n    ADD_AND_SHIFT8(oq2) \\\n    ADD_AND_SHIFT8(oq3)
        \\\n    ADD_AND_SHIFT8(oq4) \\\n    ADD_AND_SHIFT8(oq5) \\\n \\\n    p5 =
        PACK_AND_SEL(p5, apply_16); \\\n    p4 = PACK_AND_SEL(p4, apply_16); \\\n
        \   p3 = PACK_AND_SEL(p3, apply_16); \\\n    p2 = PACK_AND_SEL(p2, apply_16);
        \\\n    p1 = PACK_AND_SEL(p1, apply_16); \\\n    p0 = PACK_AND_SEL(p0, apply_16);
        \\\n    q0 = PACK_AND_SEL(q0, apply_16); \\\n    q1 = PACK_AND_SEL(q1, apply_16);
        \\\n    q2 = PACK_AND_SEL(q2, apply_16); \\\n    q3 = PACK_AND_SEL(q3, apply_16);
        \\\n    q4 = PACK_AND_SEL(q4, apply_16); \\\n    q5 = PACK_AND_SEL(q5, apply_16);
        \\\n"
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOAD_4
  - LOAD_DECLARE_2_I16
  - UNPACK_DECLARE_4_I16_I32
  - LOAD_COEFF_4
  - LOAD_SCALE_COEFF_4x8
  - LOAD_SCALE_COEFF_8x4
  - LOAD_COEFF_8x8
  - LOAD_COEFF_4x16
  - LOAD_DECLARE_4
  - STORE_LEN
  - STORE_4
  - STORE_8
  - STORE_16
  - APPLY_COEFF_4
  - APPLY_COEFF_8x4
  - APPLY_COEFF_16x4
  - IDCT_4_INNER
  - dct4_for_dct8
  - dct_4_in
  - dct_4_out
  - IDENTITY_4
  - identity_4_in
  - identity_4_out
  - ADST_INNER_4
  - adst_4_in
  - flipadst_4_in
  - adst_4_out
  - flipadst_4_out
  - dc_only_4xN
  - dc_only_8xN
  - dc_only_16xN
  - dav1d_inv_txfm_add_dct_dct_4x4_8bpc_pwr9
  - dav1d_inv_txfm_add_wht_wht_4x4_8bpc_pwr9
  - inv_txfm_fn4x4
  - IDCT_8_INNER
  - UNPACK_4_I16_I32
  - UNPACK_PAIR_I16_I32
  - dct_8_in
  - dct_8_out
  - dct_8x2_in
  - dct_8x2_out
  - IDENTITY_8
  - identity_8_in
  - identity_8_out
  - identity_8x2_in
  - PACK_4
  - DECLARE_PACK_4
  - PACK_8
  - identity_8x2_out
  - DECLARE_SPLAT_I32
  - DECLARE_MUL_PAIR_I32
  - ADD_SUB_PAIR
  - DECLARE_ADD_SUB_PAIR
  - SCALE_ROUND_4
  - ADST_INNER_8
  - adst_8_in
  - adst_8_out
  - adst_8x2_in
  - adst_8x2_out
  - flipadst_8_in
  - flipadst_8_out
  - flipadst_8x2_in
  - flipadst_8x2_out
  - dav1d_inv_txfm_add_dct_dct_4x8_8bpc_pwr9
  - inv_txfm_fn4x8
  - dav1d_inv_txfm_add_dct_dct_8x4_8bpc_pwr9
  - inv_txfm_fn8x4
  - dav1d_inv_txfm_add_dct_dct_8x8_8bpc_pwr9
  - inv_txfm_fn8x8
  - inv_txfm_fn8x8_identity
  - CLIP16_I32_8
  - MUL_4_INPLACE
  - IDENTITY_16_V
  - IDENTITY_16_INNER
  - IDENTITY_16_4_I32
  - identity_16_in
  - identity_16_out
  - IDCT_16_INNER
  - dct_16_out
  - dct_16_in
  - dct_4x4_in
  - PACK_4x4
  - dct_4x4_out
  - IDENTITY_4_I32
  - identity_4x4_in
  - identity_4x4_out
  - adst_4x4_in
  - adst_4x4_out
  - flipadst_4x4_in
  - flipadst_4x4_out
  - ADST_INNER_16
  - adst_16_in
  - adst_16_out
  - flipadst_16_in
  - flipadst_16_out
  - dav1d_inv_txfm_add_dct_dct_4x16_8bpc_pwr9
  - inv_txfm_fn4x16
  - dav1d_inv_txfm_add_dct_dct_16x4_8bpc_pwr9
  - inv_txfm_fn16x4
  - inv_txfm_fn16x4_identity
  source_file: /src/dav1d/src/ppc/itx_tmpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blend_px
  - BLEND_LINES4
  - BLEND_LINES3
  - BLEND_LINES2
  - blend4
  - blend8
  - blend16_lines
  - blend16
  - blend32
  - dav1d_blend_8bpc_pwr9
  - blend_v_h
  - blend_v_hl
  - blend_v3
  - blend_v6
  - blend_v12
  - blend_v24
  - blend_v1
  - dav1d_blend_v_8bpc_pwr9
  - blend_h_h
  - blend_h_hl
  - blend_h2
  - blend_h4
  - blend_h8
  - blend_h16
  - blend_h32
  - blend_h64
  - blend_h128
  - dav1d_blend_h_8bpc_pwr9
  source_file: /src/dav1d/src/ppc/mc_tmpl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*blend_line)(uint8_t *dst, const uint8_t *tmp, const uint8_t *mask, int
        stride)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/dav1d/src/ppc/mc_tmpl.c
      type: void
    union: []
- function_names:
  - cdef_vsx_fn
  - cdef_dsp_init_ppc
  source_file: /src/dav1d/src/ppc/cdef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - loop_restoration_dsp_init_ppc
  source_file: /src/dav1d/src/ppc/looprestoration.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - itx_dsp_init_ppc
  source_file: /src/dav1d/src/ppc/itx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - loop_filter_dsp_init_arm
  source_file: /src/dav1d/src/arm/loopfilter.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - refmvs_dsp_init_arm
  source_file: /src/dav1d/src/arm/refmvs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/arm/arm-arch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __ARM_ARCH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/dav1d/src/arm/arm-arch.h
      type_or_value: _M_ARM
    - item_type: preproc_def
      name: __ARM_ARCH
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/dav1d/src/arm/arm-arch.h
      type_or_value: '8'
    - item_type: preproc_def
      name: __ARM_ARCH
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/src/arm/arm-arch.h
      type_or_value: '7'
    - item_type: preproc_def
      name: __ARM_ARCH
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/dav1d/src/arm/arm-arch.h
      type_or_value: '6'
    - item_type: preproc_def
      name: __ARM_ARCH
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/dav1d/src/arm/arm-arch.h
      type_or_value: '5'
    - item_type: preproc_def
      name: __ARM_ARCH
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/dav1d/src/arm/arm-arch.h
      type_or_value: '4'
    - item_type: preproc_def
      name: __ARM_ARCH
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/dav1d/src/arm/arm-arch.h
      type_or_value: '3'
    - item_type: preproc_def
      name: __ARM_ARCH
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/dav1d/src/arm/arm-arch.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - dav1d_get_cpu_flags_arm
  - dav1d_get_cpu_flags_arm
  - have_feature
  - dav1d_get_cpu_flags_arm
  - dav1d_get_cpu_flags_arm
  - dav1d_get_cpu_flags_arm
  - parse_proc_cpuinfo
  - dav1d_get_cpu_flags_arm
  - dav1d_get_cpu_flags_arm
  source_file: /src/dav1d/src/arm/cpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HWCAP_AARCH64_ASIMDDP
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/dav1d/src/arm/cpu.c
      type_or_value: (1 << 20)
    - item_type: preproc_def
      name: HWCAP_AARCH64_SVE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/dav1d/src/arm/cpu.c
      type_or_value: (1 << 22)
    - item_type: preproc_def
      name: HWCAP2_AARCH64_SVE2
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/src/arm/cpu.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: HWCAP2_AARCH64_I8MM
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/dav1d/src/arm/cpu.c
      type_or_value: (1 << 13)
    - item_type: preproc_def
      name: HWCAP_ARM_NEON
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/dav1d/src/arm/cpu.c
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: HWCAP_ARM_ASIMDDP
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/dav1d/src/arm/cpu.c
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: HWCAP_ARM_I8MM
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/dav1d/src/arm/cpu.c
      type_or_value: (1 << 27)
    structs: []
    typedefs: []
    union: []
- function_names:
  - mc_dsp_init_arm
  - init_mc_fn
  - init_mct_fn
  source_file: /src/dav1d/src/arm/mc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/arm/cpu.h
  types:
    enum:
    - enumerators:
      - name: DAV1D_ARM_CPU_FLAG_NEON
        value: 1 << 0
      - name: DAV1D_ARM_CPU_FLAG_DOTPROD
        value: 1 << 1
      - name: DAV1D_ARM_CPU_FLAG_SVE2
        value: 1 << 4
      - name: DAV1D_ARM_CPU_FLAG_I8MM
        value: 1 << 2
      - name: DAV1D_ARM_CPU_FLAG_SVE
        value: 1 << 3
      item_type: enum
      name: CpuFlags
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/dav1d/src/arm/cpu.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/arm/msac.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt4
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/dav1d/src/arm/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt4_neon
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt8
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/dav1d/src/arm/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt8_neon
    - item_type: preproc_def
      name: dav1d_msac_decode_symbol_adapt16
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/dav1d/src/arm/msac.h
      type_or_value: dav1d_msac_decode_symbol_adapt16_neon
    - item_type: preproc_def
      name: dav1d_msac_decode_hi_tok
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/dav1d/src/arm/msac.h
      type_or_value: dav1d_msac_decode_hi_tok_neon
    - item_type: preproc_def
      name: dav1d_msac_decode_bool_adapt
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/dav1d/src/arm/msac.h
      type_or_value: dav1d_msac_decode_bool_adapt_neon
    - item_type: preproc_def
      name: dav1d_msac_decode_bool_equi
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/dav1d/src/arm/msac.h
      type_or_value: dav1d_msac_decode_bool_equi_neon
    - item_type: preproc_def
      name: dav1d_msac_decode_bool
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/dav1d/src/arm/msac.h
      type_or_value: dav1d_msac_decode_bool_neon
    structs: []
    typedefs: []
    union: []
- function_names:
  - GEN_GRAIN_UV
  - fgy_32x32xn_neon
  - FGUV
  - film_grain_dsp_init_arm
  source_file: /src/dav1d/src/arm/filmgrain.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/src/arm/asm-offsets.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FGD_SEED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FGD_AR_COEFF_LAG
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '92'
    - item_type: preproc_def
      name: FGD_AR_COEFFS_Y
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '96'
    - item_type: preproc_def
      name: FGD_AR_COEFFS_UV
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '120'
    - item_type: preproc_def
      name: FGD_AR_COEFF_SHIFT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '176'
    - item_type: preproc_def
      name: FGD_GRAIN_SCALE_SHIFT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '184'
    - item_type: preproc_def
      name: FGD_SCALING_SHIFT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '88'
    - item_type: preproc_def
      name: FGD_UV_MULT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '188'
    - item_type: preproc_def
      name: FGD_UV_LUMA_MULT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '196'
    - item_type: preproc_def
      name: FGD_UV_OFFSET
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '204'
    - item_type: preproc_def
      name: FGD_CLIP_TO_RESTRICTED_RANGE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '216'
    - item_type: preproc_def
      name: RMVSF_IW8
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '16'
    - item_type: preproc_def
      name: RMVSF_IH8
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '20'
    - item_type: preproc_def
      name: RMVSF_MFMV_REF
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '53'
    - item_type: preproc_def
      name: RMVSF_MFMV_REF2CUR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '56'
    - item_type: preproc_def
      name: RMVSF_MFMV_REF2REF
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '59'
    - item_type: preproc_def
      name: RMVSF_N_MFMVS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '80'
    - item_type: preproc_def
      name: RMVSF_RP_REF
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '96'
    - item_type: preproc_def
      name: RMVSF_RP_PROJ
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '104'
    - item_type: preproc_def
      name: RMVSF_RP_STRIDE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '112'
    - item_type: preproc_def
      name: RMVSF_N_TILE_THREADS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/dav1d/src/arm/asm-offsets.h
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ipred_z1_neon
  - ipred_z2_neon
  - ipred_z3_neon
  - intra_pred_dsp_init_arm
  source_file: /src/dav1d/src/arm/ipred.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEFINE_FILTER
  - cdef_dsp_init_arm
  source_file: /src/dav1d/src/arm/cdef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - wiener_filter_neon
  - rotate_neon
  - rotate5_x2_neon
  - sgr_box3_vert_neon
  - sgr_box5_vert_neon
  - sgr_box3_hv_neon
  - sgr_finish1_neon
  source_file: /src/dav1d/src/arm/looprestoration.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - itx_dsp_init_arm
  source_file: /src/dav1d/src/arm/itx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/include/compat/getopt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: optreset
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/dav1d/include/compat/getopt.h
      type_or_value: __mingw_optreset
    - item_type: preproc_def
      name: HAVE_DECL_GETOPT
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/dav1d/include/compat/getopt.h
      type_or_value: '1'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: has_arg
        type: int
      - name: '*flag'
        type: int
      - name: val
        type: int
      item_type: struct
      name: option
      pos:
        line_end: 67
        line_start: 61
        source_file: /src/dav1d/include/compat/getopt.h
    typedefs: []
    union: []
- function_names:
  - atomic_init
  - atomic_store
  - atomic_load
  - atomic_load_explicit
  - atomic_fetch_add
  - atomic_fetch_add_explicit
  - atomic_fetch_sub
  - atomic_exchange
  - atomic_fetch_or
  - atomic_compare_exchange_strong
  source_file: /src/dav1d/include/compat/gcc/stdatomic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: memory_order_relaxed
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/dav1d/include/compat/gcc/stdatomic.h
      type_or_value: __ATOMIC_RELAXED
    - item_type: preproc_def
      name: memory_order_acquire
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/include/compat/gcc/stdatomic.h
      type_or_value: __ATOMIC_ACQUIRE
    structs: []
    typedefs:
    - item_type: typedef
      name: atomic_int
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/dav1d/include/compat/gcc/stdatomic.h
      type: int
    - item_type: typedef
      name: atomic_uint
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/dav1d/include/compat/gcc/stdatomic.h
      type: unsigned int
    union: []
- function_names:
  - atomic_init
  - atomic_store
  - atomic_load
  - atomic_exchange
  - atomic_load_explicit
  - atomic_compare_exchange_strong_int
  - atomic_compare_exchange_strong
  - atomic_fetch_add
  - atomic_fetch_sub
  - atomic_fetch_or
  - atomic_fetch_add_explicit
  source_file: /src/dav1d/include/compat/msvc/stdatomic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: atomic_int
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/dav1d/include/compat/msvc/stdatomic.h
      type: LONG
    - item_type: typedef
      name: atomic_uint
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/dav1d/include/compat/msvc/stdatomic.h
      type: ULONG
    union: []
- function_names:
  - DAV1D_API_MAJOR
  - DAV1D_API_MINOR
  - DAV1D_API_PATCH
  source_file: /src/dav1d/include/dav1d/version.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DAV1D_API_VERSION_MAJOR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/dav1d/include/dav1d/version.h
      type_or_value: '7'
    - item_type: preproc_def
      name: DAV1D_API_VERSION_MINOR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/dav1d/include/dav1d/version.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DAV1D_API_VERSION_PATCH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/dav1d/include/dav1d/version.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/include/dav1d/dav1d.h
  types:
    enum:
    - enumerators:
      - name: DAV1D_INLOOPFILTER_NONE
        value: '0'
      - name: DAV1D_INLOOPFILTER_ALL
        value: "DAV1D_INLOOPFILTER_DEBLOCK |\n                             DAV1D_INLOOPFILTER_CDEF
          |\n                             DAV1D_INLOOPFILTER_RESTORATION"
      - name: DAV1D_INLOOPFILTER_RESTORATION
        value: 1 << 2
      - name: DAV1D_INLOOPFILTER_CDEF
        value: 1 << 1
      - name: DAV1D_INLOOPFILTER_DEBLOCK
        value: 1 << 0
      item_type: enum
      name: Dav1dInloopFilterType
      pos:
        line_end: 68
        line_start: 60
        source_file: /src/dav1d/include/dav1d/dav1d.h
    - enumerators:
      - name: DAV1D_DECODEFRAMETYPE_ALL
        value: '0'
      - name: DAV1D_DECODEFRAMETYPE_INTRA
        value: '2'
      - name: DAV1D_DECODEFRAMETYPE_REFERENCE
        value: '1'
      - name: DAV1D_DECODEFRAMETYPE_KEY
        value: '3'
      item_type: enum
      name: Dav1dDecodeFrameType
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/dav1d/include/dav1d/dav1d.h
    - enumerators:
      - name: DAV1D_EVENT_FLAG_NEW_SEQUENCE
        value: 1 << 0
      - name: DAV1D_EVENT_FLAG_NEW_OP_PARAMS_INFO
        value: 1 << 1
      item_type: enum
      name: Dav1dEventFlags
      pos:
        line_end: 279
        line_start: 267
        source_file: /src/dav1d/include/dav1d/dav1d.h
    preproc_defs:
    - item_type: preproc_def
      name: DAV1D_MAX_THREADS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/dav1d/include/dav1d/dav1d.h
      type_or_value: '256'
    - item_type: preproc_def
      name: DAV1D_MAX_FRAME_DELAY
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/dav1d/include/dav1d/dav1d.h
      type_or_value: '256'
    structs:
    - fields:
      - name: '*cookie'
        type: void
      - name: (*callback)(void *cookie, const char *format, va_list ap)
        type: void
      item_type: struct
      name: Dav1dLogger
      pos:
        line_end: 58
        line_start: 48
        source_file: /src/dav1d/include/dav1d/dav1d.h
    - fields:
      - name: n_threads
        type: int
      - name: max_frame_delay
        type: int
      - name: apply_grain
        type: int
      - name: operating_point
        type: int
      - name: all_layers
        type: int
      - name: frame_size_limit
        type: unsigned
      - name: allocator
        type: Dav1dPicAllocator
      - name: logger
        type: Dav1dLogger
      - name: strict_std_compliance
        type: int
      - name: output_invisible_frames
        type: int
      - name: inloop_filters
        type: enum Dav1dInloopFilterType
      - name: decode_frame_type
        type: enum Dav1dDecodeFrameType
      - name: reserved[16]
        type: uint8_t
      item_type: struct
      name: Dav1dSettings
      pos:
        line_end: 98
        line_start: 77
        source_file: /src/dav1d/include/dav1d/dav1d.h
    typedefs:
    - item_type: typedef
      name: Dav1dContext
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/dav1d/include/dav1d/dav1d.h
      type: Dav1dContext
    - item_type: typedef
      name: Dav1dRef
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/dav1d/include/dav1d/dav1d.h
      type: Dav1dRef
    union: []
- function_names: []
  source_file: /src/dav1d/include/dav1d/picture.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DAV1D_PICTURE_ALIGNMENT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/dav1d/include/dav1d/picture.h
      type_or_value: '64'
    structs:
    - fields:
      - name: w
        type: int
      - name: h
        type: int
      - name: layout
        type: enum Dav1dPixelLayout
      - name: bpc
        type: int
      item_type: struct
      name: Dav1dPictureParameters
      pos:
        line_end: 50
        line_start: 45
        source_file: /src/dav1d/include/dav1d/picture.h
    - fields:
      - name: '*seq_hdr'
        type: Dav1dSequenceHeader
      - name: '*frame_hdr'
        type: Dav1dFrameHeader
      - name: '*data[3]'
        type: void
      - name: stride[2]
        type: ptrdiff_t
      - name: p
        type: Dav1dPictureParameters
      - name: m
        type: Dav1dDataProps
      - name: '*content_light'
        type: Dav1dContentLightLevel
      - name: '*mastering_display'
        type: Dav1dMasteringDisplay
      - name: '*itut_t35'
        type: Dav1dITUTT35
      - name: n_itut_t35
        type: size_t
      - name: reserved[4]
        type: uintptr_t
      - name: '*frame_hdr_ref'
        type: struct Dav1dRef
      - name: '*seq_hdr_ref'
        type: struct Dav1dRef
      - name: '*content_light_ref'
        type: struct Dav1dRef
      - name: '*mastering_display_ref'
        type: struct Dav1dRef
      - name: '*itut_t35_ref'
        type: struct Dav1dRef
      - name: reserved_ref[4]
        type: uintptr_t
      - name: '*ref'
        type: struct Dav1dRef
      - name: '*allocator_data'
        type: void
      item_type: struct
      name: Dav1dPicture
      pos:
        line_end: 104
        line_start: 52
        source_file: /src/dav1d/include/dav1d/picture.h
    - fields:
      - name: '*cookie'
        type: void
      - name: (*alloc_picture_callback)(Dav1dPicture *pic, void *cookie)
        type: int
      - name: (*release_picture_callback)(Dav1dPicture *pic, void *cookie)
        type: void
      item_type: struct
      name: Dav1dPicAllocator
      pos:
        line_end: 145
        line_start: 106
        source_file: /src/dav1d/include/dav1d/picture.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/include/dav1d/data.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: uint8_t
      - name: sz
        type: size_t
      - name: '*ref'
        type: struct Dav1dRef
      - name: m
        type: Dav1dDataProps
      item_type: struct
      name: Dav1dData
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/dav1d/include/dav1d/data.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/include/dav1d/headers.h
  types:
    enum:
    - enumerators:
      - name: DAV1D_OBU_SEQ_HDR
        value: '1'
      - name: DAV1D_OBU_METADATA
        value: '5'
      - name: DAV1D_OBU_TILE_GRP
        value: '4'
      - name: DAV1D_OBU_TD
        value: '2'
      - name: DAV1D_OBU_FRAME_HDR
        value: '3'
      - name: DAV1D_OBU_FRAME
        value: '6'
      - name: DAV1D_OBU_REDUNDANT_FRAME_HDR
        value: '7'
      - name: DAV1D_OBU_PADDING
        value: '15'
      item_type: enum
      name: Dav1dObuType
      pos:
        line_end: 57
        line_start: 48
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_TX_4X4_ONLY
      - name: DAV1D_TX_LARGEST
      - name: DAV1D_TX_SWITCHABLE
      - name: DAV1D_N_TX_MODES
      item_type: enum
      name: Dav1dTxfmMode
      pos:
        line_end: 64
        line_start: 59
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_FILTER_8TAP_REGULAR
      - name: DAV1D_FILTER_8TAP_SMOOTH
      - name: DAV1D_FILTER_8TAP_SHARP
      - name: DAV1D_N_SWITCHABLE_FILTERS
      - name: DAV1D_FILTER_BILINEAR
        value: DAV1D_N_SWITCHABLE_FILTERS
      - name: DAV1D_N_FILTERS
      - name: DAV1D_FILTER_SWITCHABLE
        value: DAV1D_N_FILTERS
      item_type: enum
      name: Dav1dFilterMode
      pos:
        line_end: 74
        line_start: 66
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_OFF
        value: '0'
      - name: DAV1D_ON
        value: '1'
      - name: DAV1D_ADAPTIVE
        value: '2'
      item_type: enum
      name: Dav1dAdaptiveBoolean
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_RESTORATION_NONE
      - name: DAV1D_RESTORATION_SGRPROJ
      - name: DAV1D_RESTORATION_WIENER
      - name: DAV1D_RESTORATION_SWITCHABLE
      item_type: enum
      name: Dav1dRestorationType
      pos:
        line_end: 87
        line_start: 82
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_WM_TYPE_IDENTITY
      - name: DAV1D_WM_TYPE_AFFINE
      - name: DAV1D_WM_TYPE_ROT_ZOOM
      - name: DAV1D_WM_TYPE_TRANSLATION
      item_type: enum
      name: Dav1dWarpedMotionType
      pos:
        line_end: 94
        line_start: 89
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_PIXEL_LAYOUT_I400
      - name: DAV1D_PIXEL_LAYOUT_I444
      - name: DAV1D_PIXEL_LAYOUT_I422
      - name: DAV1D_PIXEL_LAYOUT_I420
      item_type: enum
      name: Dav1dPixelLayout
      pos:
        line_end: 112
        line_start: 107
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_FRAME_TYPE_KEY
        value: '0'
      - name: DAV1D_FRAME_TYPE_INTRA
        value: '2'
      - name: DAV1D_FRAME_TYPE_INTER
        value: '1'
      - name: DAV1D_FRAME_TYPE_SWITCH
        value: '3'
      item_type: enum
      name: Dav1dFrameType
      pos:
        line_end: 119
        line_start: 114
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_COLOR_PRI_BT709
        value: '1'
      - name: DAV1D_COLOR_PRI_BT470BG
        value: '5'
      - name: DAV1D_COLOR_PRI_BT470M
        value: '4'
      - name: DAV1D_COLOR_PRI_BT601
        value: '6'
      - name: DAV1D_COLOR_PRI_UNKNOWN
        value: '2'
      - name: DAV1D_COLOR_PRI_SMPTE240
        value: '7'
      - name: DAV1D_COLOR_PRI_FILM
        value: '8'
      - name: DAV1D_COLOR_PRI_BT2020
        value: '9'
      - name: DAV1D_COLOR_PRI_XYZ
        value: '10'
      - name: DAV1D_COLOR_PRI_SMPTE431
        value: '11'
      - name: DAV1D_COLOR_PRI_SMPTE432
        value: '12'
      - name: DAV1D_COLOR_PRI_EBU3213
        value: '22'
      - name: DAV1D_COLOR_PRI_RESERVED
        value: '255'
      item_type: enum
      name: Dav1dColorPrimaries
      pos:
        line_end: 135
        line_start: 121
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_TRC_BT709
        value: '1'
      - name: DAV1D_TRC_BT470BG
        value: '5'
      - name: DAV1D_TRC_BT470M
        value: '4'
      - name: DAV1D_TRC_BT601
        value: '6'
      - name: DAV1D_TRC_UNKNOWN
        value: '2'
      - name: DAV1D_TRC_SMPTE240
        value: '7'
      - name: DAV1D_TRC_LINEAR
        value: '8'
      - name: DAV1D_TRC_LOG100
        value: '9'
      - name: DAV1D_TRC_LOG100_SQRT10
        value: '10'
      - name: DAV1D_TRC_IEC61966
        value: '11'
      - name: DAV1D_TRC_SRGB
        value: '13'
      - name: DAV1D_TRC_SMPTE2084
        value: '16'
      - name: DAV1D_TRC_SMPTE428
        value: '17'
      - name: DAV1D_TRC_HLG
        value: '18'
      - name: DAV1D_TRC_BT2020_10BIT
        value: '14'
      - name: DAV1D_TRC_RESERVED
        value: '255'
      - name: DAV1D_TRC_BT1361
        value: '12'
      - name: DAV1D_TRC_BT2020_12BIT
        value: '15'
      item_type: enum
      name: Dav1dTransferCharacteristics
      pos:
        line_end: 156
        line_start: 137
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_MC_IDENTITY
        value: '0'
      - name: DAV1D_MC_BT470BG
        value: '5'
      - name: DAV1D_MC_FCC
        value: '4'
      - name: DAV1D_MC_BT709
        value: '1'
      - name: DAV1D_MC_UNKNOWN
        value: '2'
      - name: DAV1D_MC_BT601
        value: '6'
      - name: DAV1D_MC_SMPTE240
        value: '7'
      - name: DAV1D_MC_SMPTE_YCGCO
        value: '8'
      - name: DAV1D_MC_BT2020_NCL
        value: '9'
      - name: DAV1D_MC_BT2020_CL
        value: '10'
      - name: DAV1D_MC_SMPTE2085
        value: '11'
      - name: DAV1D_MC_CHROMAT_NCL
        value: '12'
      - name: DAV1D_MC_RESERVED
        value: '255'
      - name: DAV1D_MC_CHROMAT_CL
        value: '13'
      - name: DAV1D_MC_ICTCP
        value: '14'
      item_type: enum
      name: Dav1dMatrixCoefficients
      pos:
        line_end: 174
        line_start: 158
        source_file: /src/dav1d/include/dav1d/headers.h
    - enumerators:
      - name: DAV1D_CHR_UNKNOWN
        value: '0'
      - name: DAV1D_CHR_VERTICAL
        value: '1'
      - name: DAV1D_CHR_COLOCATED
        value: '2'
      item_type: enum
      name: Dav1dChromaSamplePosition
      pos:
        line_end: 181
        line_start: 176
        source_file: /src/dav1d/include/dav1d/headers.h
    preproc_defs:
    - item_type: preproc_def
      name: DAV1D_MAX_CDEF_STRENGTHS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/dav1d/include/dav1d/headers.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DAV1D_MAX_OPERATING_POINTS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/dav1d/include/dav1d/headers.h
      type_or_value: '32'
    - item_type: preproc_def
      name: DAV1D_MAX_TILE_COLS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/dav1d/include/dav1d/headers.h
      type_or_value: '64'
    - item_type: preproc_def
      name: DAV1D_MAX_TILE_ROWS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/include/dav1d/headers.h
      type_or_value: '64'
    - item_type: preproc_def
      name: DAV1D_MAX_SEGMENTS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/dav1d/include/dav1d/headers.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DAV1D_NUM_REF_FRAMES
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/dav1d/include/dav1d/headers.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DAV1D_PRIMARY_REF_NONE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/dav1d/include/dav1d/headers.h
      type_or_value: '7'
    - item_type: preproc_def
      name: DAV1D_REFS_PER_FRAME
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/dav1d/include/dav1d/headers.h
      type_or_value: '7'
    - item_type: preproc_def
      name: DAV1D_TOTAL_REFS_PER_FRAME
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/dav1d/include/dav1d/headers.h
      type_or_value: (DAV1D_REFS_PER_FRAME + 1)
    structs:
    - fields:
      - name: type
        type: enum Dav1dWarpedMotionType
      - name: matrix[6]
        type: int32_t
      - name: u
        type: "union {\n        struct {\n            int16_t alpha, beta, gamma,
          delta;\n        } p;\n        int16_t abcd[4];\n    }"
      item_type: struct
      name: Dav1dWarpedMotionParams
      pos:
        line_end: 105
        line_start: 96
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: max_content_light_level
        type: uint16_t
      - name: max_frame_average_light_level
        type: uint16_t
      item_type: struct
      name: Dav1dContentLightLevel
      pos:
        line_end: 186
        line_start: 183
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: primaries[3][2]
        type: uint16_t
      - name: white_point[2]
        type: uint16_t
      - name: max_luminance
        type: uint32_t
      - name: min_luminance
        type: uint32_t
      item_type: struct
      name: Dav1dMasteringDisplay
      pos:
        line_end: 193
        line_start: 188
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: country_code
        type: uint8_t
      - name: country_code_extension_byte
        type: uint8_t
      - name: payload_size
        type: size_t
      - name: '*payload'
        type: uint8_t
      item_type: struct
      name: Dav1dITUTT35
      pos:
        line_end: 200
        line_start: 195
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: profile
        type: uint8_t
      - name: max_width
        type: int
      - name: layout
        type: enum Dav1dPixelLayout
      - name: pri
        type: enum Dav1dColorPrimaries
      - name: trc
        type: enum Dav1dTransferCharacteristics
      - name: mtrx
        type: enum Dav1dMatrixCoefficients
      - name: chr
        type: enum Dav1dChromaSamplePosition
      - name: hbd
        type: uint8_t
      - name: color_range
        type: uint8_t
      - name: num_operating_points
        type: uint8_t
      - name: operating_points[DAV1D_MAX_OPERATING_POINTS]
        type: "struct Dav1dSequenceHeaderOperatingPoint {\n        uint8_t major_level,
          minor_level;\n        uint8_t initial_display_delay;\n        uint16_t idc;\n
          \       uint8_t tier;\n        uint8_t decoder_model_param_present;\n        uint8_t
          display_model_param_present;\n    }"
      - name: still_picture
        type: uint8_t
      - name: reduced_still_picture_header
        type: uint8_t
      - name: timing_info_present
        type: uint8_t
      - name: num_units_in_tick
        type: uint32_t
      - name: time_scale
        type: uint32_t
      - name: equal_picture_interval
        type: uint8_t
      - name: num_ticks_per_picture
        type: uint32_t
      - name: decoder_model_info_present
        type: uint8_t
      - name: encoder_decoder_buffer_delay_length
        type: uint8_t
      - name: num_units_in_decoding_tick
        type: uint32_t
      - name: buffer_removal_delay_length
        type: uint8_t
      - name: frame_presentation_delay_length
        type: uint8_t
      - name: display_model_info_present
        type: uint8_t
      - name: width_n_bits
        type: uint8_t
      - name: frame_id_numbers_present
        type: uint8_t
      - name: delta_frame_id_n_bits
        type: uint8_t
      - name: frame_id_n_bits
        type: uint8_t
      - name: sb128
        type: uint8_t
      - name: filter_intra
        type: uint8_t
      - name: intra_edge_filter
        type: uint8_t
      - name: inter_intra
        type: uint8_t
      - name: masked_compound
        type: uint8_t
      - name: warped_motion
        type: uint8_t
      - name: dual_filter
        type: uint8_t
      - name: order_hint
        type: uint8_t
      - name: jnt_comp
        type: uint8_t
      - name: ref_frame_mvs
        type: uint8_t
      - name: screen_content_tools
        type: enum Dav1dAdaptiveBoolean
      - name: force_integer_mv
        type: enum Dav1dAdaptiveBoolean
      - name: order_hint_n_bits
        type: uint8_t
      - name: super_res
        type: uint8_t
      - name: cdef
        type: uint8_t
      - name: restoration
        type: uint8_t
      - name: ss_hor
        type: uint8_t
      - name: color_description_present
        type: uint8_t
      - name: separate_uv_delta_q
        type: uint8_t
      - name: film_grain_present
        type: uint8_t
      - name: operating_parameter_info[DAV1D_MAX_OPERATING_POINTS]
        type: "struct Dav1dSequenceHeaderOperatingParameterInfo {\n        uint32_t
          decoder_buffer_delay;\n        uint32_t encoder_buffer_delay;\n        uint8_t
          low_delay_mode;\n    }"
      item_type: struct
      name: Dav1dSequenceHeader
      pos:
        line_end: 293
        line_start: 202
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: major_level
        type: uint8_t
      - name: initial_display_delay
        type: uint8_t
      - name: idc
        type: uint16_t
      - name: tier
        type: uint8_t
      - name: decoder_model_param_present
        type: uint8_t
      - name: display_model_param_present
        type: uint8_t
      item_type: struct
      name: Dav1dSequenceHeaderOperatingPoint
      pos:
        line_end: 242
        line_start: 235
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: decoder_buffer_delay
        type: uint32_t
      - name: encoder_buffer_delay
        type: uint32_t
      - name: low_delay_mode
        type: uint8_t
      item_type: struct
      name: Dav1dSequenceHeaderOperatingParameterInfo
      pos:
        line_end: 292
        line_start: 288
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: delta_q
        type: int16_t
      - name: delta_lf_y_v
        type: int8_t
      - name: ref
        type: int8_t
      - name: skip
        type: uint8_t
      - name: globalmv
        type: uint8_t
      item_type: struct
      name: Dav1dSegmentationData
      pos:
        line_end: 301
        line_start: 295
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: d[DAV1D_MAX_SEGMENTS]
        type: Dav1dSegmentationData
      - name: preskip
        type: uint8_t
      - name: last_active_segid
        type: int8_t
      item_type: struct
      name: Dav1dSegmentationDataSet
      pos:
        line_end: 307
        line_start: 303
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: mode_delta[2 /* is_zeromv */]
        type: int8_t
      - name: ref_delta[DAV1D_TOTAL_REFS_PER_FRAME]
        type: int8_t
      item_type: struct
      name: Dav1dLoopfilterModeRefDeltas
      pos:
        line_end: 312
        line_start: 309
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: seed
        type: unsigned
      - name: num_y_points
        type: int
      - name: y_points[14][2 /* value, scaling */]
        type: uint8_t
      - name: chroma_scaling_from_luma
        type: int
      - name: num_uv_points[2]
        type: int
      - name: uv_points[2][10][2 /* value, scaling */]
        type: uint8_t
      - name: scaling_shift
        type: int
      - name: ar_coeff_lag
        type: int
      - name: ar_coeffs_y[24]
        type: int8_t
      - name: ar_coeffs_uv[2][25 + 3 /* padding for alignment purposes */]
        type: int8_t
      - name: ar_coeff_shift
        type: uint64_t
      - name: grain_scale_shift
        type: int
      - name: uv_mult[2]
        type: int
      - name: uv_luma_mult[2]
        type: int
      - name: uv_offset[2]
        type: int
      - name: overlap_flag
        type: int
      - name: clip_to_restricted_range
        type: int
      item_type: struct
      name: Dav1dFilmGrainData
      pos:
        line_end: 332
        line_start: 314
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: film_grain
        type: "struct {\n        Dav1dFilmGrainData data;\n        uint8_t present,
          update;\n    }"
      - name: frame_type
        type: enum Dav1dFrameType
      - name: width[2 /* { coded_width, superresolution_upscaled_width } */]
        type: int
      - name: frame_offset
        type: uint8_t
      - name: temporal_id
        type: uint8_t
      - name: spatial_id
        type: uint8_t
      - name: show_existing_frame
        type: uint8_t
      - name: existing_frame_idx
        type: uint8_t
      - name: frame_id
        type: uint32_t
      - name: frame_presentation_delay
        type: uint32_t
      - name: show_frame
        type: uint8_t
      - name: showable_frame
        type: uint8_t
      - name: error_resilient_mode
        type: uint8_t
      - name: disable_cdf_update
        type: uint8_t
      - name: allow_screen_content_tools
        type: uint8_t
      - name: force_integer_mv
        type: uint8_t
      - name: frame_size_override
        type: uint8_t
      - name: primary_ref_frame
        type: uint8_t
      - name: buffer_removal_time_present
        type: uint8_t
      - name: operating_points[DAV1D_MAX_OPERATING_POINTS]
        type: "struct Dav1dFrameHeaderOperatingPoint {\n        uint32_t buffer_removal_time;\n
          \   }"
      - name: refresh_frame_flags
        type: uint8_t
      - name: render_width
        type: int
      - name: super_res
        type: "struct {\n        uint8_t width_scale_denominator;\n        uint8_t
          enabled;\n    }"
      - name: have_render_size
        type: uint8_t
      - name: allow_intrabc
        type: uint8_t
      - name: frame_ref_short_signaling
        type: uint8_t
      - name: refidx[DAV1D_REFS_PER_FRAME]
        type: int8_t
      - name: hp
        type: uint8_t
      - name: subpel_filter_mode
        type: enum Dav1dFilterMode
      - name: switchable_motion_mode
        type: uint8_t
      - name: use_ref_frame_mvs
        type: uint8_t
      - name: refresh_context
        type: uint8_t
      - name: tiling
        type: "struct {\n        uint8_t uniform;\n        uint8_t n_bytes;\n        uint8_t
          min_log2_cols, max_log2_cols, log2_cols, cols;\n        uint8_t min_log2_rows,
          max_log2_rows, log2_rows, rows;\n        uint16_t col_start_sb[DAV1D_MAX_TILE_COLS
          + 1];\n        uint16_t row_start_sb[DAV1D_MAX_TILE_ROWS + 1];\n        uint16_t
          update;\n    }"
      - name: quant
        type: "struct {\n        uint8_t yac;\n        int8_t ydc_delta;\n        int8_t
          udc_delta, uac_delta, vdc_delta, vac_delta;\n        uint8_t qm, qm_y, qm_u,
          qm_v;\n    }"
      - name: segmentation
        type: "struct {\n        uint8_t enabled, update_map, temporal, update_data;\n
          \       Dav1dSegmentationDataSet seg_data;\n        uint8_t lossless[DAV1D_MAX_SEGMENTS],
          qidx[DAV1D_MAX_SEGMENTS];\n    }"
      - name: delta
        type: "struct {\n        struct {\n            uint8_t present;\n            uint8_t
          res_log2;\n        } q;\n        struct {\n            uint8_t present;\n
          \           uint8_t res_log2;\n            uint8_t multi;\n        } lf;\n
          \   }"
      - name: all_lossless
        type: uint8_t
      - name: loopfilter
        type: "struct {\n        uint8_t level_y[2 /* dir */];\n        uint8_t level_u,
          level_v;\n        uint8_t mode_ref_delta_enabled;\n        uint8_t mode_ref_delta_update;\n
          \       Dav1dLoopfilterModeRefDeltas mode_ref_deltas;\n        uint8_t sharpness;\n
          \   }"
      - name: cdef
        type: "struct {\n        uint8_t damping;\n        uint8_t n_bits;\n        uint8_t
          y_strength[DAV1D_MAX_CDEF_STRENGTHS];\n        uint8_t uv_strength[DAV1D_MAX_CDEF_STRENGTHS];\n
          \   }"
      - name: restoration
        type: "struct {\n        enum Dav1dRestorationType type[3 /* plane */];\n
          \       uint8_t unit_size[2 /* y, uv */];\n    }"
      - name: txfm_mode
        type: enum Dav1dTxfmMode
      - name: switchable_comp_refs
        type: uint8_t
      - name: skip_mode_allowed
        type: uint8_t
      - name: skip_mode_refs[2]
        type: int8_t
      - name: warp_motion
        type: uint8_t
      - name: reduced_txtp_set
        type: uint8_t
      - name: gmv[DAV1D_REFS_PER_FRAME]
        type: Dav1dWarpedMotionParams
      item_type: struct
      name: Dav1dFrameHeader
      pos:
        line_end: 433
        line_start: 334
        source_file: /src/dav1d/include/dav1d/headers.h
    - fields:
      - name: buffer_removal_time
        type: uint32_t
      item_type: struct
      name: Dav1dFrameHeaderOperatingPoint
      pos:
        line_end: 360
        line_start: 358
        source_file: /src/dav1d/include/dav1d/headers.h
    typedefs: []
    union: []
- function_names:
  - DAV1D_ERR
  - DAV1D_ERR
  source_file: /src/dav1d/include/dav1d/common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DAV1D_API
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/dav1d/include/dav1d/common.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: DAV1D_API
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/dav1d/include/dav1d/common.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: DAV1D_API
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/dav1d/include/dav1d/common.h
      type_or_value: __attribute__ ((visibility ("default")))
    structs:
    - fields:
      - name: '*data'
        type: uint8_t
      - name: '*ref'
        type: struct Dav1dRef
      item_type: struct
      name: Dav1dUserData
      pos:
        line_end: 68
        line_start: 65
        source_file: /src/dav1d/include/dav1d/common.h
    - fields:
      - name: timestamp
        type: int64_t
      - name: duration
        type: int64_t
      - name: offset
        type: int64_t
      - name: size
        type: size_t
      - name: user_data
        type: struct Dav1dUserData
      item_type: struct
      name: Dav1dDataProps
      pos:
        line_end: 84
        line_start: 78
        source_file: /src/dav1d/include/dav1d/common.h
    typedefs: []
    union: []
- function_names:
  - __has_attribute
  - __has_feature
  - ATTR_FORMAT_PRINTF
  - ATTR_FORMAT_PRINTF
  - ALIGN
  - ALIGN
  - ALIGN_STK_64
  - ALIGN_STK_32
  - ALIGN_STK_16
  - NO_SANITIZE
  - assert
  - dav1d_uninit
  - dav1d_uninit
  - ctz
  - clz
  - clzll
  - clzll
  - ctz
  - clz
  - clzll
  - CHECK_OFFSET
  - CHECK_SIZE
  - CHECK_OFFSET
  - CHECK_SIZE
  - PACKED
  - PACKED
  source_file: /src/dav1d/include/common/attributes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ATTR_ALIAS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: __attribute__((may_alias))
    - item_type: preproc_def
      name: COLD
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: __attribute__((cold))
    - item_type: preproc_def
      name: ALIGN_64_VAL
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: '64'
    - item_type: preproc_def
      name: ALIGN_32_VAL
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ALIGN_16_VAL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ALIGN_64_VAL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ALIGN_32_VAL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ALIGN_16_VAL
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ALIGN_64_VAL
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ALIGN_32_VAL
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ALIGN_16_VAL
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NOINLINE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: __declspec(noinline)
    - item_type: preproc_def
      name: NOINLINE
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: __attribute__((noinline, noclone))
    - item_type: preproc_def
      name: NOINLINE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: __attribute__((noinline))
    - item_type: preproc_def
      name: ALWAYS_INLINE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: __forceinline
    - item_type: preproc_def
      name: ALWAYS_INLINE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: __attribute__((always_inline)) inline
    - item_type: preproc_def
      name: EXTERN
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: extern __attribute__((visibility("hidden")))
    - item_type: preproc_def
      name: EXTERN
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: extern
    - item_type: preproc_def
      name: ATTR_MCMODEL_SMALL
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: __attribute__((model("small")))
    - item_type: preproc_def
      name: assert
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/dav1d/include/common/attributes.h
      type_or_value: __assume
    structs: []
    typedefs: []
    union: []
- function_names:
  - append_plane_to_file
  - hex_fdump
  - hex_dump
  - coef_dump
  - ac_dump
  source_file: /src/dav1d/include/common/dump.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bitfn
  - BF
  - PXSTRIDE
  - bitdepth_from_max
  - pixel_copy
  - pixel_set
  - iclip_pixel
  - bitdepth_from_max
  - bitfn
  - BF
  - PXSTRIDE
  - highbd_only
  - bytefn
  - bitfn_decls
  source_file: /src/dav1d/include/common/bitdepth.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PIXEL_TYPE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: uint8_t
    - item_type: preproc_def
      name: COEF_TYPE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: int16_t
    - item_type: preproc_def
      name: pixel_copy
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: pixel_set
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: memset
    - item_type: preproc_def
      name: iclip_pixel
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: iclip_u8
    - item_type: preproc_def
      name: PIX_HEX_FMT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: '"%02x"'
    - item_type: preproc_def
      name: BITDEPTH_MAX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: PIXEL_TYPE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: uint16_t
    - item_type: preproc_def
      name: COEF_TYPE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: int32_t
    - item_type: preproc_def
      name: PIX_HEX_FMT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: '"%03x"'
    - item_type: preproc_def
      name: HIGHBD_DECL_SUFFIX
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: ', const int bitdepth_max'
    - item_type: preproc_def
      name: HIGHBD_CALL_SUFFIX
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: ', f->bitdepth_max'
    - item_type: preproc_def
      name: HIGHBD_TAIL_SUFFIX
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: ', bitdepth_max'
    - item_type: preproc_def
      name: BITDEPTH_MAX
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/dav1d/include/common/bitdepth.h
      type_or_value: bitdepth_max
    structs: []
    typedefs:
    - item_type: typedef
      name: pixel
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/dav1d/include/common/bitdepth.h
      type: uint8_t
    - item_type: typedef
      name: coef
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/dav1d/include/common/bitdepth.h
      type: void
    - item_type: typedef
      name: pixel
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/dav1d/include/common/bitdepth.h
      type: uint8_t
    - item_type: typedef
      name: coef
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/dav1d/include/common/bitdepth.h
      type: int16_t
    - item_type: typedef
      name: pixel
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/dav1d/include/common/bitdepth.h
      type: uint16_t
    - item_type: typedef
      name: coef
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/dav1d/include/common/bitdepth.h
      type: int32_t
    union: []
- function_names:
  - debug_print
  - debug_abort
  - debug_print
  - validate_input_or_ret_with_msg
  - validate_input_or_ret
  - validate_input
  source_file: /src/dav1d/include/common/validate.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: debug_abort
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/dav1d/include/common/validate.h
      type_or_value: abort
    structs: []
    typedefs: []
    union: []
- function_names:
  - imax
  - imin
  - umax
  - umin
  - iclip
  - iclip_u8
  - apply_sign
  - apply_sign64
  - ulog2
  - u64log2
  - inv_recenter
  source_file: /src/dav1d/include/common/intops.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_INTER_OR_SWITCH
  - IS_KEY_OR_INTRA
  source_file: /src/dav1d/include/common/frame.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FRAME_OFFSET_TO_PTS
  - TS_TO_PTS
  - dp_settings_print_usage
  - parse_unsigned
  - dp_rd_ctx_parse_args
  - dp_rd_ctx_destroy
  - dp_rd_ctx_create
  - dp_rd_ctx_post_event
  - dp_rd_ctx_update_with_dav1d_picture
  - dp_rd_ctx_toggle_pause
  - dp_rd_ctx_is_paused
  - dp_rd_ctx_seek
  - dp_rd_ctx_handle_seek
  - dp_rd_ctx_request_shutdown
  - dp_rd_ctx_should_terminate
  - dp_rd_ctx_render
  - decode_frame
  - destroy_pic
  - decoder_thread_main
  - main
  source_file: /src/dav1d/examples/dav1dplay.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_MAX_EVENTS
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/dav1d/examples/dav1dplay.c
      type_or_value: '8'
    structs:
    - fields:
      - name: settings
        type: Dav1dPlaySettings
      - name: lib_settings
        type: Dav1dSettings
      - name: '*rd_priv'
        type: void
      - name: '*lock'
        type: SDL_mutex
      - name: last_ts
        type: int64_t
      - name: current_ts
        type: int64_t
      - name: last_ticks
        type: uint32_t
      - name: timebase
        type: double
      - name: spf
        type: double
      - name: total
        type: uint32_t
      - name: '*fifo'
        type: Dav1dPlayPtrFifo
      - name: event_types
        type: uint32_t
      - name: user_paused
        type: uint8_t
      - name: paused
        type: uint8_t
      - name: pause_start
        type: uint32_t
      - name: pause_time
        type: uint32_t
      - name: seek
        type: int
      - name: dec_should_terminate
        type: uint8_t
      item_type: struct
      name: render_context
      pos:
        line_end: 99
        line_start: 55
        source_file: /src/dav1d/examples/dav1dplay.c
    typedefs: []
    union: []
- function_names:
  - sdl_renderer_create
  - sdl_renderer_destroy
  - sdl_render
  - sdl_update_texture
  source_file: /src/dav1d/examples/dp_renderer_sdl.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*win'
        type: SDL_Window
      - name: '*renderer'
        type: SDL_Renderer
      - name: '*lock'
        type: SDL_mutex
      - name: '*tex'
        type: SDL_Texture
      item_type: struct
      name: renderer_priv_ctx
      pos:
        line_end: 43
        line_start: 33
        source_file: /src/dav1d/examples/dp_renderer_sdl.c
    typedefs: []
    union: []
- function_names:
  - dp_get_renderer
  - dp_create_sdl_window
  source_file: /src/dav1d/examples/dp_renderer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_RENDERER_PLACEBO
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/dav1d/examples/dp_renderer.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_PLACEBO_VULKAN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/dav1d/examples/dp_renderer.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_RENDERER_PLACEBO
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/dav1d/examples/dp_renderer.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_PLACEBO_OPENGL
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/dav1d/examples/dp_renderer.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_RENDERER_PLACEBO
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/dav1d/examples/dp_renderer.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_PLACEBO_VULKAN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/dav1d/examples/dp_renderer.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_PLACEBO_OPENGL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/dav1d/examples/dp_renderer.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WINDOW_WIDTH
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/dav1d/examples/dp_renderer.h
      type_or_value: '910'
    - item_type: preproc_def
      name: WINDOW_HEIGHT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/dav1d/examples/dp_renderer.h
      type_or_value: '512'
    structs:
    - fields:
      - name: '*inputfile'
        type: char
      - name: '*renderer_name'
        type: char
      - name: highquality
        type: int
      - name: untimed
        type: int
      - name: zerocopy
        type: int
      - name: gpugrain
        type: int
      - name: fullscreen
        type: int
      item_type: struct
      name: Dav1dPlaySettings
      pos:
        line_end: 74
        line_start: 66
        source_file: /src/dav1d/examples/dp_renderer.h
    - fields:
      - name: '*name'
        type: char
      - name: '*cookie'
        type: void
      - name: '* (*create_renderer)(const Dav1dPlaySettings *settings)'
        type: void
      - name: (*destroy_renderer)(void *cookie)
        type: void
      - name: (*render)(void *cookie, const Dav1dPlaySettings *settings)
        type: void
      - name: "(*update_frame)(void *cookie, Dav1dPicture *dav1d_pic,\n                        const
          Dav1dPlaySettings *settings)"
        type: int
      - name: (*alloc_pic)(Dav1dPicture *pic, void *cookie)
        type: int
      - name: (*release_pic)(Dav1dPicture *pic, void *cookie)
        type: void
      - name: supports_gpu_grain
        type: int
      item_type: struct
      name: rdr_info
      pos:
        line_end: 108
        line_start: 88
        source_file: /src/dav1d/examples/dp_renderer.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/dav1d/examples/dp_fifo.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Dav1dPlayPtrFifo
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/dav1d/examples/dp_fifo.h
      type: dp_fifo
    union: []
- function_names:
  - dp_fifo_create
  - dp_fifo_destroy
  - dp_fifo_push
  - dp_fifo_array_shift
  - dp_fifo_shift
  - dp_fifo_flush
  source_file: /src/dav1d/examples/dp_fifo.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*lock'
        type: SDL_mutex
      - name: '*cond_change'
        type: SDL_cond
      - name: capacity
        type: size_t
      - name: count
        type: size_t
      - name: '**entries'
        type: void
      - name: push_wait
        type: int
      - name: flush
        type: int
      item_type: struct
      name: dp_fifo
      pos:
        line_end: 41
        line_start: 32
        source_file: /src/dav1d/examples/dp_fifo.c
    typedefs: []
    union: []
- function_names:
  - placebo_renderer_create_common
  - placebo_renderer_create_gl
  - placebo_renderer_create_vk
  - placebo_renderer_destroy
  - placebo_render
  - placebo_upload_image
  - placebo_alloc_pic
  - placebo_release_pic
  source_file: /src/dav1d/examples/dp_renderer_placebo.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*win'
        type: SDL_Window
      - name: log
        type: pl_log
      - name: renderer
        type: pl_renderer
      - name: gpu
        type: pl_gpu
      - name: swapchain
        type: pl_swapchain
      - name: '*lock'
        type: SDL_mutex
      - name: image
        type: struct pl_frame
      - name: plane_tex[3]
        type: pl_tex
      item_type: struct
      name: renderer_priv_ctx
      pos:
        line_end: 78
        line_start: 47
        source_file: /src/dav1d/examples/dp_renderer_placebo.c
    typedefs: []
    union: []
