Implementation notes: amd64, cel02, crypto_aead/norx6444v3

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: norx6444v3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1491820467 8 044773 832 960T:ymmgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1610020660 8 041668 824 896T:ymmgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1674620258 8 039112 808 896T:ymmgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1738224166 8 042572 800 856T:ymmclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
1844621473 8 041972 824 896T:ymmgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
349604006 16 023065 816 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
465447069 16 027234 816 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
4914628417 16 052813 840 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
5319625521 16 046645 832 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
532544914 16 023396 808 856T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
6622628203 16 048797 832 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

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: 0x5565b6646810: v4i64 = X86ISD::VTRUNC 0x5565b66466e0
try.c: 0x5565b66466e0: v16i32 = vselect 0x5565b663e680, 0x5565b65db2c0, 0x5565b66465b0
try.c: 0x5565b663e680: v4i1 = X86ISD::PCMPGTM 0x5565b6624af0, 0x5565b6620680
try.c: 0x5565b6624af0: v4i64 = X86ISD::VBROADCAST 0x5565b65c7f40
try.c: 0x5565b65c7f40: i64,ch = load<LD8[%lsr.iv6971]> 0x5565b6535940, 0x5565b660e850, undef:i64
try.c: 0x5565b660e850: i64,ch = CopyFromReg 0x5565b6535940, Register:i64 %vreg50
try.c: 0x5565b66208e0: i64 = Register %vreg50
try.c: 0x5565b65c9410: i64 = undef
try.c: 0x5565b6620680: v4i64,ch = CopyFromReg 0x5565b6535940, Register:v4i64 %vreg13
try.c: 0x5565b6625340: v4i64 = Register %vreg13
try.c: 0x5565b65db2c0: v16i32 = X86ISD::VBROADCAST 0x5565b6624d50
try.c: 0x5565b6624d50: i32,ch = load<LD4[ConstantPool]> 0x5565b6535940, 0x5565b65d4330, undef:i64
try.c: 0x5565b65d4330: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5565b65c0b00: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5565b65c9410: i64 = undef
try.c: 0x5565b66465b0: 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: 0x5565b6646480: i32 = Constant<0>
try.c: 0x5565b6646480: i32 = Constant<0>
try.c: 0x5565b6646480: i32 = Constant<0>
try.c: 0x5565b6646480: i32 = Constant<0>
try.c: 0x5565b6646480: i32 = Constant<0>
try.c: 0x5565b6646480: i32 = Constant<0>
try.c: 0x5565b6646480: i32 = Constant<0>
try.c: 0x5565b6646480: i32 = Constant<0>
try.c: 0x5565b6646480: 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: 0x55c518bb3980: v4i64 = X86ISD::VTRUNC 0x55c518bb3850
try.c: 0x55c518bb3850: v16i32 = vselect 0x55c518ba3140, 0x55c518b3b990, 0x55c518bb3720
try.c: 0x55c518ba3140: v4i1 = X86ISD::PCMPGTM 0x55c518b8e970, 0x55c518b8a500
try.c: 0x55c518b8e970: v4i64 = X86ISD::VBROADCAST 0x55c518b3be50
try.c: 0x55c518b3be50: i64,ch = load<LD8[%lsr.iv6971]> 0x55c518a87a30, 0x55c518b22760, undef:i64
try.c: 0x55c518b22760: i64,ch = CopyFromReg 0x55c518a87a30, Register:i64 %vreg50
try.c: 0x55c518b8a760: i64 = Register %vreg50
try.c: 0x55c518b39620: i64 = undef
try.c: 0x55c518b8a500: v4i64,ch = CopyFromReg 0x55c518a87a30, Register:v4i64 %vreg13
try.c: 0x55c518b8f1c0: v4i64 = Register %vreg13
try.c: 0x55c518b3b990: v16i32 = X86ISD::VBROADCAST 0x55c518b8ebd0
try.c: 0x55c518b8ebd0: i32,ch = load<LD4[ConstantPool]> 0x55c518a87a30, 0x55c518b3e330, undef:i64
try.c: 0x55c518b3e330: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55c518b39fa0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55c518b39620: i64 = undef
try.c: 0x55c518bb3720: 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: 0x55c518bb35f0: i32 = Constant<0>
try.c: 0x55c518bb35f0: i32 = Constant<0>
try.c: 0x55c518bb35f0: i32 = Constant<0>
try.c: 0x55c518bb35f0: i32 = Constant<0>
try.c: 0x55c518bb35f0: i32 = Constant<0>
try.c: 0x55c518bb35f0: i32 = Constant<0>
try.c: 0x55c518bb35f0: i32 = Constant<0>
try.c: 0x55c518bb35f0: i32 = Constant<0>
try.c: 0x55c518bb35f0: 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: 0x556b1fb96230: v4i64 = X86ISD::VTRUNC 0x556b1fb96100
try.c: 0x556b1fb96100: v16i32 = vselect 0x556b1fb92c10, 0x556b1fb2f910, 0x556b1fb95fd0
try.c: 0x556b1fb92c10: v4i1 = X86ISD::PCMPGTM 0x556b1fb8dfc0, 0x556b1fb89b50
try.c: 0x556b1fb8dfc0: v4i64 = X86ISD::VBROADCAST 0x556b1fb2cab0
try.c: 0x556b1fb2cab0: i64,ch = load<LD8[%lsr.iv6971]> 0x556b1fa9e930, 0x556b1fb811a0, undef:i64
try.c: 0x556b1fb811a0: i64,ch = CopyFromReg 0x556b1fa9e930, Register:i64 %vreg50
try.c: 0x556b1fb89db0: i64 = Register %vreg50
try.c: 0x556b1fb2df80: i64 = undef
try.c: 0x556b1fb89b50: v4i64,ch = CopyFromReg 0x556b1fa9e930, Register:v4i64 %vreg13
try.c: 0x556b1fb8e810: v4i64 = Register %vreg13
try.c: 0x556b1fb2f910: v16i32 = X86ISD::VBROADCAST 0x556b1fb8e220
try.c: 0x556b1fb8e220: i32,ch = load<LD4[ConstantPool]> 0x556b1fa9e930, 0x556b1fb439f0, undef:i64
try.c: 0x556b1fb439f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556b1fb30d40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556b1fb2df80: i64 = undef
try.c: 0x556b1fb95fd0: 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: 0x556b1fb95ea0: i32 = Constant<0>
try.c: 0x556b1fb95ea0: i32 = Constant<0>
try.c: 0x556b1fb95ea0: i32 = Constant<0>
try.c: 0x556b1fb95ea0: i32 = Constant<0>
try.c: 0x556b1fb95ea0: i32 = Constant<0>
try.c: 0x556b1fb95ea0: i32 = Constant<0>
try.c: 0x556b1fb95ea0: i32 = Constant<0>
try.c: 0x556b1fb95ea0: i32 = Constant<0>
try.c: 0x556b1fb95ea0: 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:ymm
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: 0x55642ab2d1c0: v4i64 = X86ISD::VTRUNC 0x55642ab2d090
try.c: 0x55642ab2d090: v16i32 = vselect 0x55642ab29ba0, 0x55642aac3df0, 0x55642ab2cf60
try.c: 0x55642ab29ba0: v4i1 = X86ISD::PCMPGTM 0x55642ab24f50, 0x55642ab20ae0
try.c: 0x55642ab24f50: v4i64 = X86ISD::VBROADCAST 0x55642aad9000
try.c: 0x55642aad9000: i64,ch = load<LD8[%lsr.iv6971]> 0x55642aa35950, 0x55642ab18400, undef:i64
try.c: 0x55642ab18400: i64,ch = CopyFromReg 0x55642aa35950, Register:i64 %vreg50
try.c: 0x55642ab20d40: i64 = Register %vreg50
try.c: 0x55642aada4d0: i64 = undef
try.c: 0x55642ab20ae0: v4i64,ch = CopyFromReg 0x55642aa35950, Register:v4i64 %vreg13
try.c: 0x55642ab257a0: v4i64 = Register %vreg13
try.c: 0x55642aac3df0: v16i32 = X86ISD::VBROADCAST 0x55642ab251b0
try.c: 0x55642ab251b0: i32,ch = load<LD4[ConstantPool]> 0x55642aa35950, 0x55642aaced70, undef:i64
try.c: 0x55642aaced70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55642ab0c630: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55642aada4d0: i64 = undef
try.c: 0x55642ab2cf60: 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: 0x55642ab2ce30: i32 = Constant<0>
try.c: 0x55642ab2ce30: i32 = Constant<0>
try.c: 0x55642ab2ce30: i32 = Constant<0>
try.c: 0x55642ab2ce30: i32 = Constant<0>
try.c: 0x55642ab2ce30: i32 = Constant<0>
try.c: 0x55642ab2ce30: i32 = Constant<0>
try.c: 0x55642ab2ce30: i32 = Constant<0>
try.c: 0x55642ab2ce30: i32 = Constant<0>
try.c: 0x55642ab2ce30: 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:ymm

Compiler output

Implementation: T:ymm
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: 0x5623599687b0: v4i64 = X86ISD::VTRUNC 0x562359968680
try.c: 0x562359968680: v16i32 = vselect 0x5623599578c0, 0x5623598d9c80, 0x562359968550
try.c: 0x5623599578c0: v4i1 = X86ISD::PCMPGTM 0x562359942580, 0x56235993f890
try.c: 0x562359942580: v4i64 = X86ISD::VBROADCAST 0x5623598da140
try.c: 0x5623598da140: i64,ch = load<LD8[%lsr.iv6971]> 0x56235983ca20, 0x5623598d83a0, undef:i64
try.c: 0x5623598d83a0: i64,ch = CopyFromReg 0x56235983ca20, Register:i64 %vreg50
try.c: 0x56235993faf0: i64 = Register %vreg50
try.c: 0x5623598dcc40: i64 = undef
try.c: 0x56235993f890: v4i64,ch = CopyFromReg 0x56235983ca20, Register:v4i64 %vreg13
try.c: 0x562359942dd0: v4i64 = Register %vreg13
try.c: 0x5623598d9c80: v16i32 = X86ISD::VBROADCAST 0x5623599427e0
try.c: 0x5623599427e0: i32,ch = load<LD4[ConstantPool]> 0x56235983ca20, 0x5623598d6970, undef:i64
try.c: 0x5623598d6970: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5623598dd5c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5623598dcc40: i64 = undef
try.c: 0x562359968550: 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: 0x562359968420: i32 = Constant<0>
try.c: 0x562359968420: i32 = Constant<0>
try.c: 0x562359968420: i32 = Constant<0>
try.c: 0x562359968420: i32 = Constant<0>
try.c: 0x562359968420: i32 = Constant<0>
try.c: 0x562359968420: i32 = Constant<0>
try.c: 0x562359968420: i32 = Constant<0>
try.c: 0x562359968420: i32 = Constant<0>
try.c: 0x562359968420: 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:ymm

Compiler output

Implementation: T:ymm
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: 0x560991671d50: v4i64 = X86ISD::VTRUNC 0x560991671c20
try.c: 0x560991671c20: v16i32 = vselect 0x56099166d350, 0x560991617c70, 0x560991671af0
try.c: 0x56099166d350: v4i1 = X86ISD::PCMPGTM 0x560991669b20, 0x5609916656b0
try.c: 0x560991669b20: v4i64 = X86ISD::VBROADCAST 0x560991614e10
try.c: 0x560991614e10: i64,ch = load<LD8[%lsr.iv6971]> 0x56099157a910, 0x560991612d80, undef:i64
try.c: 0x560991612d80: i64,ch = CopyFromReg 0x56099157a910, Register:i64 %vreg50
try.c: 0x560991665910: i64 = Register %vreg50
try.c: 0x5609916162e0: i64 = undef
try.c: 0x5609916656b0: v4i64,ch = CopyFromReg 0x56099157a910, Register:v4i64 %vreg13
try.c: 0x56099166a370: v4i64 = Register %vreg13
try.c: 0x560991617c70: v16i32 = X86ISD::VBROADCAST 0x560991669d80
try.c: 0x560991669d80: i32,ch = load<LD4[ConstantPool]> 0x56099157a910, 0x56099160b2e0, undef:i64
try.c: 0x56099160b2e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560991624ee0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5609916162e0: i64 = undef
try.c: 0x560991671af0: 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: 0x5609916719c0: i32 = Constant<0>
try.c: 0x5609916719c0: i32 = Constant<0>
try.c: 0x5609916719c0: i32 = Constant<0>
try.c: 0x5609916719c0: i32 = Constant<0>
try.c: 0x5609916719c0: i32 = Constant<0>
try.c: 0x5609916719c0: i32 = Constant<0>
try.c: 0x5609916719c0: i32 = Constant<0>
try.c: 0x5609916719c0: i32 = Constant<0>
try.c: 0x5609916719c0: 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:ymm

Compiler output

Implementation: T:ymm
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
norx.c: norx.c:653:21: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'sse4.2'
norx.c: const __m256i K = LOADU(key);
norx.c: ^
norx.c: norx.c:45:19: note: expanded from macro 'LOADU'
norx.c: #define LOADU(in) _mm256_loadu_si256((__m256i*)(in))
norx.c: ^
norx.c: norx.c:657:3: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'sse4.2'
norx.c: INITIALISE(A, B, C, D, nonce, K);
norx.c: ^
norx.c: norx.c:254:7: note: expanded from macro 'INITIALISE'
norx.c: A = LOADU(NONCE); \
norx.c: ^
norx.c: norx.c:45:19: note: expanded from macro 'LOADU'
norx.c: #define LOADU(in) _mm256_loadu_si256((__m256i*)(in))
norx.c: ^
norx.c: norx.c:657:3: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'sse4.2'
norx.c: norx.c:256:7: note: expanded from macro 'INITIALISE'
norx.c: C = _mm256_set_epi64x(U11, U10, U9, U8); \
norx.c: ^
norx.c: norx.c:657:3: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'sse4.2'
norx.c: norx.c:257:7: note: expanded from macro 'INITIALISE'
norx.c: D = _mm256_set_epi64x(U15, U14, U13, U12); \
norx.c: ^
norx.c: norx.c:657:3: error: always_inline function '_mm256_xor_si256' requires target feature 'sse4.2', but would be inlined into function 'norx_aead_encrypt' that is compiled without support for 'sse4.2'
norx.c: norx.c:258:7: note: expanded from macro 'INITIALISE'
norx.c: ...

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