summaryrefslogtreecommitdiff
blob: b31b19fb6bfd14e0967733b5fb18155cf8851a60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Testing almost all implementations using gcc-4.6.1 and enabling vectorization

# blas-reference is implemented in Fortran: set environment variables that are relevant for Fortran.
blas-reference sci-libs/blas-reference-3.3.1-r1 FC=gfortran-4.5.2 FFLAGS="-O3 -pipe -march=native -msse3 -msse4.1 -msse4.2"

# ACML is a compiled library (no compiler/flags variables affect the result).
# Depending on the USE flags, different implementations for both 32 and 64 bits are installed.
# Use the -implementation syntax to mask them.
acml sci-libs/acml-4.4.0-r1 -acml32-gfortran -acml32-gfortran-openmp -acml64-gfortran-openmp

# The gotoblas and openblas need the variable TARGET to be set for some CPUs (e.g. for Nehalem)
# The use flags incblas installs the CBLAS interface, too.
goto sci-libs/gotoblas2-1.13 CFLAGS="-O3 -march=native" USE='incblas' TARGET=NEHALEM
openblas sci-libs/openblas CC=gcc-4.6.1 CFLAGS="-O3 -pipe -march=native -msse3 -msse4.1 -msse4.2" USE=incblas TARGET=NEHALEM

# ATLAS is implemented in C: set flags for C
atlas sci-libs/atlas-3.9.41 CC=gcc-4.6.1 CFLAGS="-O3 -pipe -march=native -msse3 -msse4.1 -msse4.2"

# Eigen is mostly implemented in C++, with some C code. Set flags for both languages.
eigen dev-cpp/eigen-3.0.1-r1 CC=gcc-4.6.1 CXX=g++-4.6.1 CFLAGS="-O3 -pipe -march=native -msse3 -msse4.1 -msse4.2" CXXFLAGS="-O3 -pipe -march=native -msse3 -msse4.1 -msse4.2"