[FFmpeg-devel] [PATCH] lavc/ac3: add R-V Zbb extract_exponents

Rémi Denis-Courmont remi at remlab.net
Sun Dec 3 22:18:53 EET 2023



Le 3 décembre 2023 19:50:18 GMT+02:00, Zhao Zhili <quinkblack at foxmail.com> a écrit :
>
>
>> On Oct 3, 2023, at 00:47, Rémi Denis-Courmont <remi at remlab.net> wrote:
>> 
>> 
>> diff --git a/libavcodec/riscv/ac3dsp_rvb.S b/libavcodec/riscv/ac3dsp_rvb.S
>> new file mode 100644
>> index 0000000000..48f8bb101e
>> --- /dev/null
>> +++ b/libavcodec/riscv/ac3dsp_rvb.S
>> 
>> +func ff_extract_exponents_rvb, zbb
>> +1:
>> +        lw       t0, (a1)
>> +        addi     a0, a0, 1
>> +        neg      t1, t0
>> +        addi     a1, a1, 4
>> +        max      t0, t0, t1
>> +        addi     a2, a2, -1
>> +        clz      t0, t0
>> +        addi     t0, t0, 24 - __riscv_xlen
>> +        sb       t0, -1(a0)
>> +        bgtz    a2, 1b
>> +
>> +        ret
>> +endfunc
>>>
>Got build failure with clang 14:
>
><instantiation>:6:21: warning: unknown option, expected 'push', 'pop', 'rvc', 'norvc', 'relax' or 'norelax'
>            .option arch, +zbb
>                    ^
>src/libavcodec/riscv/ac3dsp_rvb.S:24:1: note: while in macro instantiation
>func ff_extract_exponents_rvb, zbb
>^
>src/libavcodec/riscv/ac3dsp_rvb.S:30:9: error: instruction requires the following: 'Zbb' (Basic Bit-Manipulation)
>        max t0, t0, t1
>        ^
>src/libavcodec/riscv/ac3dsp_rvb.S:32:9: error: instruction requires the following: 'Zbb' (Basic Bit-Manipulation)
>        clz t0, t0
>        ^
>make: *** [/home/quink/work/ffmpeg/ffbuild/common.mak:93: libavcodec/riscv/ac3dsp_rvb.o] Error 1
>make: *** Waiting for unfinished jobs....
><instantiation>:6:21: warning: unknown option, expected 'push', 'pop', 'rvc', 'norvc', 'relax' or 'norelax'
>            .option arch, +f
>                    ^
>src/libavcodec/riscv/audiodsp_rvf.S:23:1: note: while in macro instantiation
>func ff_vector_clipf_rvf, f
>^
>
>Someone says clang 14 has Zbb extensions support. I don’t know what’s going on.

Forgot the explanation: the problem seems to be the arch option, not the Zbb extension.

I think you can get around it with -no-integrated-as, but then... what I said in the other mail.

Br,


More information about the ffmpeg-devel mailing list