Implementation notes: amd64, cel02, crypto_aead/schwaemm256256v1

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: schwaemm256256v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4010205034 0 019524 840 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4025044718 0 019291 824 896T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4031845327 0 019995 832 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4256645306 0 023140 832 960T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4287603665 0 016807 808 896T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4445743954 0 017191 816 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
44879010099 0 028076 840 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4754204537 0 018932 832 896T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x556694b88df0: v4i64 = X86ISD::VTRUNC 0x556694b88cc0
try.c: 0x556694b88cc0: v16i32 = vselect 0x556694b83d50, 0x556694b120f0, 0x556694b88b90
try.c: 0x556694b83d50: v4i1 = X86ISD::PCMPGTM 0x556694b699b0, 0x556694b65540
try.c: 0x556694b699b0: v4i64 = X86ISD::VBROADCAST 0x556694b24f90
try.c: 0x556694b24f90: i64,ch = load<LD8[%lsr.iv6971]> 0x556694a7a950, 0x556694b53930, undef:i64
try.c: 0x556694b53930: i64,ch = CopyFromReg 0x556694a7a950, Register:i64 %vreg50
try.c: 0x556694b657a0: i64 = Register %vreg50
try.c: 0x556694b10760: i64 = undef
try.c: 0x556694b65540: v4i64,ch = CopyFromReg 0x556694a7a950, Register:v4i64 %vreg13
try.c: 0x556694b6a200: v4i64 = Register %vreg13
try.c: 0x556694b120f0: v16i32 = X86ISD::VBROADCAST 0x556694b69c10
try.c: 0x556694b69c10: i32,ch = load<LD4[ConstantPool]> 0x556694a7a950, 0x556694b24570, undef:i64
try.c: 0x556694b24570: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556694b54b30: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556694b10760: i64 = undef
try.c: 0x556694b88b90: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x556694b88a60: i32 = Constant<0>
try.c: 0x556694b88a60: i32 = Constant<0>
try.c: 0x556694b88a60: i32 = Constant<0>
try.c: 0x556694b88a60: i32 = Constant<0>
try.c: 0x556694b88a60: i32 = Constant<0>
try.c: 0x556694b88a60: i32 = Constant<0>
try.c: 0x556694b88a60: i32 = Constant<0>
try.c: 0x556694b88a60: i32 = Constant<0>
try.c: 0x556694b88a60: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55966825c8b0: v4i64 = X86ISD::VTRUNC 0x55966825c780
try.c: 0x55966825c780: v16i32 = vselect 0x559668262a90, 0x5596681dcfc0, 0x55966825c650
try.c: 0x559668262a90: v4i1 = X86ISD::PCMPGTM 0x559668244f60, 0x559668240af0
try.c: 0x559668244f60: v4i64 = X86ISD::VBROADCAST 0x5596681dd480
try.c: 0x5596681dd480: i64,ch = load<LD8[%lsr.iv6971]> 0x55966813ea30, 0x5596681ee860, undef:i64
try.c: 0x5596681ee860: i64,ch = CopyFromReg 0x55966813ea30, Register:i64 %vreg50
try.c: 0x559668240d50: i64 = Register %vreg50
try.c: 0x5596681d85e0: i64 = undef
try.c: 0x559668240af0: v4i64,ch = CopyFromReg 0x55966813ea30, Register:v4i64 %vreg13
try.c: 0x5596682457b0: v4i64 = Register %vreg13
try.c: 0x5596681dcfc0: v16i32 = X86ISD::VBROADCAST 0x5596682451c0
try.c: 0x5596682451c0: i32,ch = load<LD4[ConstantPool]> 0x55966813ea30, 0x559668206cd0, undef:i64
try.c: 0x559668206cd0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5596681d8f60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5596681d85e0: i64 = undef
try.c: 0x55966825c650: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x55966825c520: i32 = Constant<0>
try.c: 0x55966825c520: i32 = Constant<0>
try.c: 0x55966825c520: i32 = Constant<0>
try.c: 0x55966825c520: i32 = Constant<0>
try.c: 0x55966825c520: i32 = Constant<0>
try.c: 0x55966825c520: i32 = Constant<0>
try.c: 0x55966825c520: i32 = Constant<0>
try.c: 0x55966825c520: i32 = Constant<0>
try.c: 0x55966825c520: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x555a243e0050: v4i64 = X86ISD::VTRUNC 0x555a243dff20
try.c: 0x555a243dff20: v16i32 = vselect 0x555a243f55b0, 0x555a24386280, 0x555a243dfdf0
try.c: 0x555a243f55b0: v4i1 = X86ISD::PCMPGTM 0x555a243daa20, 0x555a243d65b0
try.c: 0x555a243daa20: v4i64 = X86ISD::VBROADCAST 0x555a24387c90
try.c: 0x555a24387c90: i64,ch = load<LD8[%lsr.iv6971]> 0x555a242eb950, 0x555a243d1410, undef:i64
try.c: 0x555a243d1410: i64,ch = CopyFromReg 0x555a242eb950, Register:i64 %vreg50
try.c: 0x555a243d6810: i64 = Register %vreg50
try.c: 0x555a243848f0: i64 = undef
try.c: 0x555a243d65b0: v4i64,ch = CopyFromReg 0x555a242eb950, Register:v4i64 %vreg13
try.c: 0x555a243db270: v4i64 = Register %vreg13
try.c: 0x555a24386280: v16i32 = X86ISD::VBROADCAST 0x555a243dac80
try.c: 0x555a243dac80: i32,ch = load<LD4[ConstantPool]> 0x555a242eb950, 0x555a24387270, undef:i64
try.c: 0x555a24387270: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555a24382260: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555a243848f0: i64 = undef
try.c: 0x555a243dfdf0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x555a243dfcc0: i32 = Constant<0>
try.c: 0x555a243dfcc0: i32 = Constant<0>
try.c: 0x555a243dfcc0: i32 = Constant<0>
try.c: 0x555a243dfcc0: i32 = Constant<0>
try.c: 0x555a243dfcc0: i32 = Constant<0>
try.c: 0x555a243dfcc0: i32 = Constant<0>
try.c: 0x555a243dfcc0: i32 = Constant<0>
try.c: 0x555a243dfcc0: i32 = Constant<0>
try.c: 0x555a243dfcc0: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_opt_timingleaks_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `encryptPT'
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_opt_timingleaks_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `decryptCT'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_opt_timingleaks_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `encryptPT'
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_opt_timingleaks_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `decryptCT'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x5622622521a0: v4i64 = X86ISD::VTRUNC 0x562262252070
try.c: 0x562262252070: v16i32 = vselect 0x56226223d870, 0x5622621dfde0, 0x562262251f40
try.c: 0x56226223d870: v4i1 = X86ISD::PCMPGTM 0x56226223a840, 0x5622622363d0
try.c: 0x56226223a840: v4i64 = X86ISD::VBROADCAST 0x5622621dcf80
try.c: 0x5622621dcf80: i64,ch = load<LD8[%lsr.iv6971]> 0x56226214b8e0, 0x562262225f20, undef:i64
try.c: 0x562262225f20: i64,ch = CopyFromReg 0x56226214b8e0, Register:i64 %vreg50
try.c: 0x562262236630: i64 = Register %vreg50
try.c: 0x5622621de450: i64 = undef
try.c: 0x5622622363d0: v4i64,ch = CopyFromReg 0x56226214b8e0, Register:v4i64 %vreg13
try.c: 0x56226223b090: v4i64 = Register %vreg13
try.c: 0x5622621dfde0: v16i32 = X86ISD::VBROADCAST 0x56226223aaa0
try.c: 0x56226223aaa0: i32,ch = load<LD4[ConstantPool]> 0x56226214b8e0, 0x5622621e5150, undef:i64
try.c: 0x5622621e5150: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5622621fc0d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5622621de450: i64 = undef
try.c: 0x562262251f40: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x562262251e10: i32 = Constant<0>
try.c: 0x562262251e10: i32 = Constant<0>
try.c: 0x562262251e10: i32 = Constant<0>
try.c: 0x562262251e10: i32 = Constant<0>
try.c: 0x562262251e10: i32 = Constant<0>
try.c: 0x562262251e10: i32 = Constant<0>
try.c: 0x562262251e10: i32 = Constant<0>
try.c: 0x562262251e10: i32 = Constant<0>
try.c: 0x562262251e10: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x5646e71eb540: v4i64 = X86ISD::VTRUNC 0x5646e71eb410
try.c: 0x5646e71eb410: v16i32 = vselect 0x5646e71fde60, 0x5646e717f2f0, 0x5646e71eb2e0
try.c: 0x5646e71fde60: v4i1 = X86ISD::PCMPGTM 0x5646e71e3f00, 0x5646e71dfee0
try.c: 0x5646e71e3f00: v4i64 = X86ISD::VBROADCAST 0x5646e717f7b0
try.c: 0x5646e717f7b0: i64,ch = load<LD8[%lsr.iv6971]> 0x5646e70dda40, 0x5646e718e170, undef:i64
try.c: 0x5646e718e170: i64,ch = CopyFromReg 0x5646e70dda40, Register:i64 %vreg50
try.c: 0x5646e71e0140: i64 = Register %vreg50
try.c: 0x5646e715b1f0: i64 = undef
try.c: 0x5646e71dfee0: v4i64,ch = CopyFromReg 0x5646e70dda40, Register:v4i64 %vreg13
try.c: 0x5646e71e4750: v4i64 = Register %vreg13
try.c: 0x5646e717f2f0: v16i32 = X86ISD::VBROADCAST 0x5646e71e4160
try.c: 0x5646e71e4160: i32,ch = load<LD4[ConstantPool]> 0x5646e70dda40, 0x5646e7181c90, undef:i64
try.c: 0x5646e7181c90: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5646e715bb70: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5646e715b1f0: i64 = undef
try.c: 0x5646e71eb2e0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x5646e71eb1b0: i32 = Constant<0>
try.c: 0x5646e71eb1b0: i32 = Constant<0>
try.c: 0x5646e71eb1b0: i32 = Constant<0>
try.c: 0x5646e71eb1b0: i32 = Constant<0>
try.c: 0x5646e71eb1b0: i32 = Constant<0>
try.c: 0x5646e71eb1b0: i32 = Constant<0>
try.c: 0x5646e71eb1b0: i32 = Constant<0>
try.c: 0x5646e71eb1b0: i32 = Constant<0>
try.c: 0x5646e71eb1b0: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x5556bc0e2b20: v4i64 = X86ISD::VTRUNC 0x5556bc0e29f0
try.c: 0x5556bc0e29f0: v16i32 = vselect 0x5556bc0fcea0, 0x5556bc084840, 0x5556bc0e28c0
try.c: 0x5556bc0fcea0: v4i1 = X86ISD::PCMPGTM 0x5556bc0d9cd0, 0x5556bc0d5e60
try.c: 0x5556bc0d9cd0: v4i64 = X86ISD::VBROADCAST 0x5556bc0819e0
try.c: 0x5556bc0819e0: i64,ch = load<LD8[%lsr.iv6971]> 0x5556bbfea940, 0x5556bc0c2ae0, undef:i64
try.c: 0x5556bc0c2ae0: i64,ch = CopyFromReg 0x5556bbfea940, Register:i64 %vreg50
try.c: 0x5556bc0d60c0: i64 = Register %vreg50
try.c: 0x5556bc082eb0: i64 = undef
try.c: 0x5556bc0d5e60: v4i64,ch = CopyFromReg 0x5556bbfea940, Register:v4i64 %vreg13
try.c: 0x5556bc0da520: v4i64 = Register %vreg13
try.c: 0x5556bc084840: v16i32 = X86ISD::VBROADCAST 0x5556bc0d9f30
try.c: 0x5556bc0d9f30: i32,ch = load<LD4[ConstantPool]> 0x5556bbfea940, 0x5556bc080fc0, undef:i64
try.c: 0x5556bc080fc0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5556bc0c4cc0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5556bc082eb0: i64 = undef
try.c: 0x5556bc0e28c0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x5556bc0e2790: i32 = Constant<0>
try.c: 0x5556bc0e2790: i32 = Constant<0>
try.c: 0x5556bc0e2790: i32 = Constant<0>
try.c: 0x5556bc0e2790: i32 = Constant<0>
try.c: 0x5556bc0e2790: i32 = Constant<0>
try.c: 0x5556bc0e2790: i32 = Constant<0>
try.c: 0x5556bc0e2790: i32 = Constant<0>
try.c: 0x5556bc0e2790: i32 = Constant<0>
try.c: 0x5556bc0e2790: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_ref_timingleaks_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `encryptPT'
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_ref_timingleaks_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `decryptCT'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_ref_timingleaks_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `encryptPT'
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_ref_timingleaks_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `decryptCT'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref