Implementation notes: amd64, oki, crypto_sign/luov890351pc

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_sign
Primitive: luov890351pc
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1290400? ? ?? ? ?avx2clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1292870? ? ?? ? ?avx2clang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1385040? ? ?? ? ?avx2gcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019011420181123
1438338? ? ?? ? ?avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019011420181123
1458432? ? ?? ? ?avx2gcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2019011420181123
1786310? ? ?? ? ?avx2gcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2019011420181123
1809594? ? ?? ? ?avx2gcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019011420181123
1812688? ? ?? ? ?avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019011420181123
1822466? ? ?? ? ?avx2gcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2019011420181123
1824938? ? ?? ? ?avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019011420181123
1971984? ? ?? ? ?avx2gcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019011420181123
1972634? ? ?? ? ?avx2gcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2019011420181123
2001094? ? ?? ? ?avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019011420181123
2047672? ? ?? ? ?avx2gcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019011420181123

Compiler output

Implementation: avx2
Security model: unknown
Compiler: cc
intermediateValues.c: In file included from LinearAlgebra.h:9:0,
intermediateValues.c: from intermediateValues.h:5,
intermediateValues.c: from intermediateValues.c:1:
intermediateValues.c: AVX_Operations.h:22:21: error: unknown type name '__m256i'
intermediateValues.c: void print256_num32(__m256i var)
intermediateValues.c: ^
intermediateValues.c: AVX_Operations.h:31:20: error: unknown type name '__m256i'
intermediateValues.c: void print256_num8(__m256i var)
intermediateValues.c: ^
intermediateValues.c: In file included from LinearAlgebra.h:9:0,
intermediateValues.c: from intermediateValues.h:5,
intermediateValues.c: from intermediateValues.c:1:
intermediateValues.c: AVX_Operations.h:47:26: error: unknown type name '__m256i'
intermediateValues.c: void addScalarProductAVX(__m256i *V, FELT a, bitcontainer b) {
intermediateValues.c: ^
intermediateValues.c: AVX_Operations.h:100:27: error: unknown type name '__m256i'
intermediateValues.c: void addScalarProduct3AVX(__m256i *V1, FELT a1, __m256i *V2, FELT a2, __m256i *V3, FELT a3, const bitcontainer b) {
intermediateValues.c: ^
intermediateValues.c: AVX_Operations.h:100:49: error: unknown type name '__m256i'
intermediateValues.c: void addScalarProduct3AVX(__m256i *V1, FELT a1, __m256i *V2, FELT a2, __m256i *V3, FELT a3, const bitcontainer b) {
intermediateValues.c: ^
intermediateValues.c: AVX_Operations.h:100:71: error: unknown type name '__m256i'
intermediateValues.c: void addScalarProduct3AVX(__m256i *V1, FELT a1, __m256i *V2, FELT a2, __m256i *V3, FELT a3, const bitcontainer b) {
intermediateValues.c: ^
intermediateValues.c: AVX_Operations.h:158:27: error: unknown type name '__m256i'
intermediateValues.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
cc avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
LinearAlgebra.c: LinearAlgebra.c:78:11: error: always_inline function '_mm256_setzero_si256' requires target feature 'sse4.2', but would be inlined into function 'scaleRow' that is compiled without support for 'sse4.2'
LinearAlgebra.c: Temp = _mm256_setzero_si256();
LinearAlgebra.c: ^
LinearAlgebra.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments avx2
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
try.c: fatal error: error in backend: Cannot select: 0x10215d0: v4i64 = X86ISD::VTRUNC 0x1021400
try.c: 0x1021400: v16i32 = vselect 0xffdff0, 0xfaf700, 0x10212d0
try.c: 0xffdff0: v4i1 = X86ISD::PCMPGTM 0x100a350, 0xfbd770
try.c: 0x100a350: v4i64 = X86ISD::VBROADCAST 0xfbdb00
try.c: 0xfbdb00: i64,ch = load<LD8[%uglygep72]> 0xf04db0, 0xfb5d30, undef:i64
try.c: 0xfb5d30: i64 = add 0x100b230, 0xfb2150
try.c: 0x100b230: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1000930: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0xfb2150: i64 = shl 0x10000e0, Constant:i8<3>
try.c: 0x10000e0: i64,ch = CopyFromReg 0xf04db0, Register:i64 %vreg50
try.c: 0x100b6f0: i64 = Register %vreg50
try.c: 0xf86d00: i8 = Constant<3>
try.c: 0x10081b0: i64 = undef
try.c: 0xfbd770: v4i64,ch = CopyFromReg 0xf04db0, Register:v4i64 %vreg13
try.c: 0xfba8f0: v4i64 = Register %vreg13
try.c: 0xfaf700: v16i32 = X86ISD::VBROADCAST 0x1000340
try.c: 0x1000340: i32,ch = load<LD4[ConstantPool]> 0xf04db0, 0x1020f40, undef:i64
try.c: 0x1020f40: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0xfa2bd0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x10081b0: i64 = undef
try.c: 0x10212d0: 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: 0x10211a0: i32 = Constant<0>
try.c: 0x10211a0: i32 = Constant<0>
try.c: 0x10211a0: i32 = Constant<0>
try.c: 0x10211a0: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments
LinearAlgebra.c: LinearAlgebra.c:88:9: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'scalarMul2' that is compiled without support for 'avx2'
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(table[0],_mm256_and_si256(*Mask,A)));
LinearAlgebra.c: ^
LinearAlgebra.c: LinearAlgebra.c:88:32: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'scalarMul2' that is compiled without support for 'avx2'
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(table[0],_mm256_and_si256(*Mask,A)));
LinearAlgebra.c: ^
LinearAlgebra.c: LinearAlgebra.c:88:61: error: always_inline function '_mm256_and_si256' requires target feature 'avx2', but would be inlined into function 'scalarMul2' that is compiled without support for 'avx2'
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(table[0],_mm256_and_si256(*Mask,A)));
LinearAlgebra.c: ^
LinearAlgebra.c: LinearAlgebra.c:89:9: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'scalarMul2' that is compiled without support for 'avx2'
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(table[1],_mm256_and_si256(*Mask,_mm256_srli_epi16(A,4))));
LinearAlgebra.c: ^
LinearAlgebra.c: LinearAlgebra.c:89:32: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'scalarMul2' that is compiled without support for 'avx2'
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(table[1],_mm256_and_si256(*Mask,_mm256_srli_epi16(A,4))));
LinearAlgebra.c: ^
LinearAlgebra.c: LinearAlgebra.c:89:61: error: always_inline function '_mm256_and_si256' requires target feature 'avx2', but would be inlined into function 'scalarMul2' that is compiled without support for 'avx2'
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(table[1],_mm256_and_si256(*Mask,_mm256_srli_epi16(A,4))));
LinearAlgebra.c: ^
LinearAlgebra.c: LinearAlgebra.c:89:84: error: always_inline function '_mm256_srli_epi16' requires target feature 'avx2', but would be inlined into function 'scalarMul2' that is compiled without support for 'avx2'
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(table[1],_mm256_and_si256(*Mask,_mm256_srli_epi16(A,4))));
LinearAlgebra.c: ^
LinearAlgebra.c: 7 errors generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments avx2
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: fatal error: error in backend: Cannot select: 0x192dd40: v4i64 = X86ISD::VTRUNC 0x192db70
try.c: 0x192db70: v16i32 = vselect 0x19373f0, 0x18b0320, 0x192da40
try.c: 0x19373f0: v4i1 = X86ISD::PCMPGTM 0x1916670, 0x18b10d0
try.c: 0x1916670: v4i64 = X86ISD::VBROADCAST 0x18b1460
try.c: 0x18b1460: i64,ch = load<LD8[%uglygep72]> 0x1811dd0, 0x19053a0, undef:i64
try.c: 0x19053a0: i64 = add 0x1917550, 0x18b6da0
try.c: 0x1917550: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x190d600: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x18b6da0: i64 = shl 0x190cdb0, Constant:i8<3>
try.c: 0x190cdb0: i64,ch = CopyFromReg 0x1811dd0, Register:i64 %vreg50
try.c: 0x1917a10: i64 = Register %vreg50
try.c: 0x18c7650: i8 = Constant<3>
try.c: 0x19144d0: i64 = undef
try.c: 0x18b10d0: v4i64,ch = CopyFromReg 0x1811dd0, Register:v4i64 %vreg13
try.c: 0x18bd9d0: v4i64 = Register %vreg13
try.c: 0x18b0320: v16i32 = X86ISD::VBROADCAST 0x190d010
try.c: 0x190d010: i32,ch = load<LD4[ConstantPool]> 0x1811dd0, 0x192d6b0, undef:i64
try.c: 0x192d6b0: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x18bb4f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x19144d0: i64 = undef
try.c: 0x192da40: 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: 0x192d910: i32 = Constant<0>
try.c: 0x192d910: i32 = Constant<0>
try.c: 0x192d910: i32 = Constant<0>
try.c: 0x192d910: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc
LinearAlgebra.c: LinearAlgebra.c: In function 'scaleRow':
LinearAlgebra.c: LinearAlgebra.c:78:9: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
LinearAlgebra.c: Temp = _mm256_setzero_si256();
LinearAlgebra.c: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from LinearAlgebra.h:9:0,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h: In function 'scalarMul_ct':
LinearAlgebra.c: AVX_Operations.h:529:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
LinearAlgebra.c: void scalarMul_ct(__m256i *Out, __m256i A, FELT b){
LinearAlgebra.c: ^~~~~~~~~~~~
LinearAlgebra.c: In file included from /usr/lib64/gcc/x86_64-suse-linux/7/include/immintrin.h:43:0,
LinearAlgebra.c: from parameters.h:5,
LinearAlgebra.c: from F256Field.h:10,
LinearAlgebra.c: from LinearAlgebra.h:8,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h: In function 'scalarMul':
LinearAlgebra.c: /usr/lib64/gcc/x86_64-suse-linux/7/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline '_mm256_xor_si256': target specific option mismatch
LinearAlgebra.c: _mm256_xor_si256 (__m256i __A, __m256i __B)
LinearAlgebra.c: ^~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from LinearAlgebra.h:9:0,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h:450:9: note: called from here
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(Table[((uint32_t)b)*2+1],_mm256_and_si256(*Mask,_mm256_srli_epi16(A,4))));
LinearAlgebra.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from /usr/lib64/gcc/x86_64-suse-linux/7/include/immintrin.h:43:0,
LinearAlgebra.c: ...

Number of similar (compiler,implementation) pairs: 86, namely:
CompilerImplementations
gcc avx2
gcc -O2 -fomit-frame-pointer avx2
gcc -O3 -fomit-frame-pointer avx2
gcc -O -fomit-frame-pointer avx2
gcc -Os -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O2 -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O3 -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O -fomit-frame-pointer avx2
gcc -fno-schedule-insns -Os -fomit-frame-pointer avx2
gcc -funroll-loops avx2
gcc -funroll-loops -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -O -fomit-frame-pointer avx2
gcc -funroll-loops -Os -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer avx2
gcc -m64 -O2 -fomit-frame-pointer avx2
gcc -m64 -O3 -fomit-frame-pointer avx2
gcc -m64 -O -fomit-frame-pointer avx2
gcc -m64 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core2 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -Os -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O -fomit-frame-pointer avx2
gcc -m64 -march=k8 -Os -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O2 -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O3 -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O -fomit-frame-pointer avx2
gcc -m64 -march=nocona -Os -fomit-frame-pointer avx2
gcc -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -march=barcelona -O -fomit-frame-pointer avx2
gcc -march=barcelona -Os -fomit-frame-pointer avx2
gcc -march=k8 -O2 -fomit-frame-pointer avx2
gcc -march=k8 -O3 -fomit-frame-pointer avx2
gcc -march=k8 -O -fomit-frame-pointer avx2
gcc -march=k8 -Os -fomit-frame-pointer avx2
gcc -march=nocona -O2 -fomit-frame-pointer avx2
gcc -march=nocona -O3 -fomit-frame-pointer avx2
gcc -march=nocona -O -fomit-frame-pointer avx2
gcc -march=nocona -Os -fomit-frame-pointer avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
LinearAlgebra.c: LinearAlgebra.c: In function 'scaleRow':
LinearAlgebra.c: LinearAlgebra.c:78:9: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
LinearAlgebra.c: Temp = _mm256_setzero_si256();
LinearAlgebra.c: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from LinearAlgebra.h:9:0,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h: In function 'scalarMul_ct':
LinearAlgebra.c: AVX_Operations.h:529:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
LinearAlgebra.c: void scalarMul_ct(__m256i *Out, __m256i A, FELT b){
LinearAlgebra.c: ^~~~~~~~~~~~
LinearAlgebra.c: In file included from /usr/lib64/gcc/x86_64-suse-linux/7/include/immintrin.h:43:0,
LinearAlgebra.c: from parameters.h:5,
LinearAlgebra.c: from F256Field.h:10,
LinearAlgebra.c: from LinearAlgebra.h:8,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h: In function 'scalarMul':
LinearAlgebra.c: /usr/lib64/gcc/x86_64-suse-linux/7/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline '_mm256_xor_si256': target specific option mismatch
LinearAlgebra.c: _mm256_xor_si256 (__m256i __A, __m256i __B)
LinearAlgebra.c: ^~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from LinearAlgebra.h:9:0,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h:450:9: note: called from here
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(Table[((uint32_t)b)*2+1],_mm256_and_si256(*Mask,_mm256_srli_epi16(A,4))));
LinearAlgebra.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from /usr/lib64/gcc/x86_64-suse-linux/7/include/immintrin.h:43:0,
LinearAlgebra.c: ...
LinearAlgebra.c: LinearAlgebra.c: In function 'scaleRow':
LinearAlgebra.c: LinearAlgebra.c:78:9: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
LinearAlgebra.c: Temp = _mm256_setzero_si256();
LinearAlgebra.c: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from LinearAlgebra.h:9:0,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h: In function 'scalarMul_ct':
LinearAlgebra.c: AVX_Operations.h:529:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
LinearAlgebra.c: void scalarMul_ct(__m256i *Out, __m256i A, FELT b){
LinearAlgebra.c: ^~~~~~~~~~~~
LinearAlgebra.c: In file included from /usr/lib64/gcc/x86_64-suse-linux/7/include/immintrin.h:43:0,
LinearAlgebra.c: from parameters.h:5,
LinearAlgebra.c: from F256Field.h:10,
LinearAlgebra.c: from LinearAlgebra.h:8,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h: In function 'scalarMul':
LinearAlgebra.c: /usr/lib64/gcc/x86_64-suse-linux/7/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline '_mm256_xor_si256': target specific option mismatch
LinearAlgebra.c: _mm256_xor_si256 (__m256i __A, __m256i __B)
LinearAlgebra.c: ^~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from LinearAlgebra.h:9:0,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h:450:9: note: called from here
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(Table[((uint32_t)b)*2+1],_mm256_and_si256(*Mask,_mm256_srli_epi16(A,4))));
LinearAlgebra.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from /usr/lib64/gcc/x86_64-suse-linux/7/include/immintrin.h:43:0,
LinearAlgebra.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -m64 -march=barcelona -O -fomit-frame-pointer avx2
gcc -m64 -march=barcelona -Os -fomit-frame-pointer avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer
LinearAlgebra.c: In file included from /usr/lib64/gcc/x86_64-suse-linux/7/include/immintrin.h:43:0,
LinearAlgebra.c: from parameters.h:5,
LinearAlgebra.c: from F256Field.h:10,
LinearAlgebra.c: from LinearAlgebra.h:8,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h: In function 'scalarMul':
LinearAlgebra.c: /usr/lib64/gcc/x86_64-suse-linux/7/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline '_mm256_xor_si256': target specific option mismatch
LinearAlgebra.c: _mm256_xor_si256 (__m256i __A, __m256i __B)
LinearAlgebra.c: ^~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from LinearAlgebra.h:9:0,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h:450:9: note: called from here
LinearAlgebra.c: *Out = _mm256_xor_si256(*Out, _mm256_shuffle_epi8(Table[((uint32_t)b)*2+1],_mm256_and_si256(*Mask,_mm256_srli_epi16(A,4))));
LinearAlgebra.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from /usr/lib64/gcc/x86_64-suse-linux/7/include/immintrin.h:43:0,
LinearAlgebra.c: from parameters.h:5,
LinearAlgebra.c: from F256Field.h:10,
LinearAlgebra.c: from LinearAlgebra.h:8,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: /usr/lib64/gcc/x86_64-suse-linux/7/include/avx2intrin.h:588:1: error: inlining failed in call to always_inline '_mm256_shuffle_epi8': target specific option mismatch
LinearAlgebra.c: _mm256_shuffle_epi8 (__m256i __X, __m256i __Y)
LinearAlgebra.c: ^~~~~~~~~~~~~~~~~~~
LinearAlgebra.c: In file included from LinearAlgebra.h:9:0,
LinearAlgebra.c: from LinearAlgebra.c:4:
LinearAlgebra.c: AVX_Operations.h:450:9: note: called from here
LinearAlgebra.c: ...

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer avx2