vpc-ccg / sedef

Identification of segmental duplications in the genome
MIT License
26 stars 8 forks source link

Error: operand type mismatch for `vpor' #3

Closed baraaorabi closed 6 years ago

baraaorabi commented 6 years ago

I am getting an assembler error when I try to compile SEDEF. I am using GCC version 5.2.0:

[borabi@xavier3-eno2 src]$ gcc --version
gcc (GCC) 5.2.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Here's my bash output:

[borabi@xavier3-eno2 src]$ git clone https://github.com/vpc-ccg/sedef
Cloning into 'sedef'...
remote: Counting objects: 1066, done.
remote: Compressing objects: 100% (51/51), done.
remote: Total 1066 (delta 19), reused 30 (delta 13), pack-reused 1002
Receiving objects: 100% (1066/1066), 21.08 MiB | 15.74 MiB/s, done.
Resolving deltas: 100% (767/767), done.
[borabi@xavier3-eno2 src]$ cd sedef/
[borabi@xavier3-eno2 sedef]$ make -j release
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/merge.cc -o src/merge.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/hit.cc -o src/hit.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/util.cc -o src/util.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/align.cc -o src/align.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/align_main.cc -o src/align_main.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/fasta.cc -o src/fasta.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/globals.cc -o src/globals.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/sliding.cc -o src/sliding.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/main.cc -o src/main.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/hash.cc -o src/hash.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/filter.cc -o src/filter.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/chain.cc -o src/chain.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/refine.cc -o src/refine.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/search.cc -o src/search.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/stats_main.cc -o src/stats_main.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/search_main.cc -o src/search_main.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" extern/ksw2_extz2_sse.cc -o extern/ksw2_extz2_sse.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" extern/format.cc -o extern/format.o
/tmp/ccIdoBrl.s: Assembler messages:
/tmp/ccIdoBrl.s:516: Error: operand type mismatch for `vpor'
make: *** [extern/ksw2_extz2_sse.o] Error 1
make: *** Waiting for unfinished jobs....

I also tried with the g++ flag option:

[borabi@xavier3-eno2 sedef]$ make -j release CXX=g++
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/merge.cc -o src/merge.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/hit.cc -o src/hit.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/util.cc -o src/util.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/align.cc -o src/align.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/align_main.cc -o src/align_main.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/fasta.cc -o src/fasta.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/globals.cc -o src/globals.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/sliding.cc -o src/sliding.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/main.cc -o src/main.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/hash.cc -o src/hash.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/filter.cc -o src/filter.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/chain.cc -o src/chain.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/refine.cc -o src/refine.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/search.cc -o src/search.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/stats_main.cc -o src/stats_main.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" src/search_main.cc -o src/search_main.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" extern/ksw2_extz2_sse.cc -o extern/ksw2_extz2_sse.o
g++ -c -I fmt -I . -std=c++14 -I src -fopenmp -fdiagnostics-color -march=native -MMD -MP -I. -O2 -g -O3 -DNDEBUG  -DGITVER=\"1.1-8-g9f8d942\" extern/format.cc -o extern/format.o
/tmp/ccuHyaaP.s: Assembler messages:
/tmp/ccuHyaaP.s:516: Error: operand type mismatch for `vpor'
make: *** [extern/ksw2_extz2_sse.o] Error 1
make: *** Waiting for unfinished jobs....

Still getting the same error.

P.S.: When I use GCC version 5.5.0 (installed from Homebrew), SEDEF installs smoothly. Is there a specific version of GCC below which SEDEF won't compile?

inumanag commented 6 years ago

The problematic file is using SSE4 instructions, and for some reason that fails to compile on your machine. Can you check in /proc/cpuinfo what SSE intrinsics are supported?

baraaorabi commented 6 years ago

Does this help:


[borabi@xavier3-eno2 ~]$ cat /proc/cpuinfo | grep sse | head -n1
    flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp_epp ```
inumanag commented 6 years ago

As I know your machine, can you try using ICC? I had issues with non-system g++ at xavier1 as well, and had to use ICC. Never had any issues with g++ on either Mac or Linux.

inumanag commented 6 years ago

Closing this issue; please reopen if it occurs again.