Skip to content

Commit ecd9282

Browse files
committed
Merge branch 'master' into libsimdpp-2.x
2 parents 2545b97 + df02667 commit ecd9282

File tree

1,219 files changed

+39273
-14402
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,219 files changed

+39273
-14402
lines changed

.appveyor.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
2+
# General
3+
# -------
4+
5+
# version format
6+
version: 2.1.{build}
7+
8+
# branches to build
9+
branches:
10+
only:
11+
- master
12+
- dev
13+
- cxx98
14+
- cxx98-staging
15+
16+
max_jobs: 1
17+
18+
# Environment
19+
# -----------
20+
21+
image:
22+
- Visual Studio 2013
23+
- Visual Studio 2015
24+
- Visual Studio 2017
25+
26+
shallow_clone: true
27+
28+
clone_folder: c:\projects\libsimdpp
29+
30+
# Build configuration
31+
# -------------------
32+
33+
before_build:
34+
- cd c:\projects\libsimdpp
35+
- if exist build rmdir build /s /q
36+
- mkdir build
37+
- cd build
38+
- cmake ..
39+
40+
build_script:
41+
- cd c:\projects\libsimdpp\build
42+
- cmake --build . --target test_insn
43+
- cmake --build . --target test_dispatcher
44+
- cmake --build . --target test_expr
45+
46+
47+
# Tests configuration
48+
# -------------------
49+
50+
test_script:
51+
- cd c:\projects\libsimdpp\build
52+
- cmake --build . --target check

.gitignore

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1-
build
2-
*.user*
3-
*~
1+
# Documentation output
2+
doc/output
3+
doc/reference
4+
# QtCreator files
45
libsimdpp.config
56
libsimdpp.creator
67
libsimdpp.includes
78
libsimdpp.files
9+
*.user*
10+
# Misc files created during local development
11+
*~
12+
build*
13+
venv
14+
pywiki

.travis.yml

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
dist: trusty
2+
sudo: false
3+
language:
4+
- cpp
5+
6+
matrix:
7+
include:
8+
- os: linux
9+
addons:
10+
apt:
11+
sources:
12+
- ubuntu-toolchain-r-test
13+
packages:
14+
- g++-4.9
15+
env:
16+
- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
17+
18+
- os: linux
19+
addons:
20+
apt:
21+
sources:
22+
- ubuntu-toolchain-r-test
23+
packages:
24+
- g++-5
25+
env:
26+
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
27+
28+
- os: linux
29+
addons:
30+
apt:
31+
sources:
32+
- ubuntu-toolchain-r-test
33+
packages:
34+
- g++-6
35+
env:
36+
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
37+
38+
- os: linux
39+
addons:
40+
apt:
41+
sources:
42+
- ubuntu-toolchain-r-test
43+
packages:
44+
- g++-7
45+
env:
46+
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
47+
48+
- os: linux
49+
addons:
50+
apt:
51+
sources:
52+
- ubuntu-toolchain-r-test
53+
- llvm-toolchain-precise-3.6
54+
packages:
55+
- clang-3.6
56+
env:
57+
- MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6"
58+
59+
- os: linux
60+
addons:
61+
apt:
62+
sources:
63+
- ubuntu-toolchain-r-test
64+
- llvm-toolchain-precise-3.7
65+
packages:
66+
- clang-3.7
67+
env:
68+
- MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7"
69+
70+
- os: linux
71+
addons:
72+
apt:
73+
sources:
74+
- ubuntu-toolchain-r-test
75+
- llvm-toolchain-precise-3.8
76+
packages:
77+
- clang-3.8
78+
env:
79+
- MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
80+
81+
- os: linux
82+
addons:
83+
apt:
84+
sources:
85+
- llvm-toolchain-trusty-3.9
86+
packages:
87+
- clang-3.9
88+
env:
89+
- MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"
90+
91+
- os: linux
92+
addons:
93+
apt:
94+
sources:
95+
- llvm-toolchain-trusty-4.0
96+
packages:
97+
- clang-4.0
98+
env:
99+
- MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"
100+
101+
- os: linux
102+
addons:
103+
apt:
104+
sources:
105+
- llvm-toolchain-trusty-5.0
106+
packages:
107+
- clang-5.0
108+
env:
109+
- MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"
110+
111+
- os: osx
112+
osx_image: xcode9
113+
114+
- os: osx
115+
osx_image: xcode8.3
116+
117+
- os: osx
118+
osx_image: xcode7.3
119+
120+
before_install:
121+
- eval "${MATRIX_EVAL}"
122+
123+
script:
124+
- mkdir build && cd build && cmake .. && make check -j2

CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
cmake_minimum_required(VERSION 2.8.0)
88
project(libsimdpp)
9-
set(PROJECT_VERSION "2.0-rc2")
10-
set(SIMDPP_API_VERSION "2.0")
9+
set(PROJECT_VERSION "2.1")
10+
set(SIMDPP_API_VERSION "2.1")
1111

1212
set(PKG_NAME "${CMAKE_PROJECT_NAME}")
1313
set(PKG_FULL_NAME "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}")
@@ -28,8 +28,10 @@ add_custom_target(dist
2828
# ------------------------------------------------------------------------------
2929
# Check what instruction sets the current host supports. Use them for testing
3030
include(SimdppMultiarch)
31-
simdpp_get_runnable_archs(NATIVE_ARCHS)
31+
message(STATUS "Checking instruction set support in the compiler...")
3232
simdpp_get_compilable_archs(COMPILABLE_ARCHS)
33+
message(STATUS "Checking instruction sets to run tests for on this host...")
34+
simdpp_get_runnable_archs(NATIVE_ARCHS)
3335
# ------------------------------------------------------------------------------
3436

3537
set(SIMDPP_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include/${PKG_NAME}-${SIMDPP_API_VERSION}")

CONTRIBUTING.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
Contributions to the library are gladly accepted.
2+
3+
The main development happens in https://github.com/p12tic/libsimdpp repository.
4+
5+
If you don't have time to submit a bug fix, please open an issue report on
6+
GitHub so at least the problem is known. The same applies to improvements -
7+
don't hesitate to open feature request so that the design of new APIs could
8+
take your use case into account.
9+
10+
Documentation
11+
-------------
12+
13+
The documentation is written on a MediaWiki instance which is currently private.
14+
If you find a problem in the documentation, please open an issue with a link to
15+
the page in question.
16+
17+
Code changes
18+
------------
19+
20+
Please test your code changes by running the following:
21+
22+
```
23+
mkdir build
24+
cd build
25+
cmake ..
26+
27+
# on Linux / macOS
28+
make check -j8
29+
30+
# on Windows
31+
cmake --build . --target check
32+
```
33+
34+
Please use the `dev` branch as a target for pull requests. The reason for this
35+
is that the public continuous integration services used by the library cover
36+
only SSE2-AVX2 instruction sets. The rest are periodically tested on a private
37+
test farm. Due to the number of tested compilers and library configurations
38+
this testing is usually done only on each merge from the `dev` branch to
39+
the `master` branch.
40+
41+
Code style
42+
----------
43+
44+
C-style pointer casts are discouraged, use reinterpret_cast for that. For
45+
non-pointer types C-style casts are preferred over static_cast or constructor.

ChangeLog

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,34 @@
1+
What's new in v2.1:
2+
* Various bug fixes
3+
* Documentation has been significantly improved. The public API is now almost
4+
fully documented.
5+
* Added support for MIPS MSA instruction set.
6+
* Added support for PowerPC VSX v2.06 and v2.07 instruction sets.
7+
* Added support for x86 AVX512BW, AVX512DQ and AVX512VL instruction sets.
8+
* Added support for 64-bit little-endian PowerPC.
9+
* Added support for arbitrary width vectors in extract() and insert()
10+
* Added support for arbitrary source vectors to to_int8(), to_uint8(),
11+
to_int16(), to_uint16(), to_int32(), to_uint32(), to_int64(), to_uint64(),
12+
to_float32(), to_float64().
13+
* Added support for per-element integer shifts to shift_r() and shift_l().
14+
Fallback paths are provided for SSE2-AVX instruction sets that lack
15+
hardware per-element integer shift support.
16+
* Make shuffle_bytes16(), shuffle_zbytes16(), permute_bytes16() and
17+
permute_zbytes() more generic.
18+
* New functions: popcnt, reduce_popcnt, for_each, to_mask()
19+
* Xcode is now supported.
20+
* The library has been refactored in such a way that older compilers are able
21+
to optimize vector emulation code paths much better than before.
22+
* Deprecation: implicit conversion operators to native vector types has been
23+
deprecated and a replacement method has been provided instead. The implicit
24+
conversion operators may lead to wrong code being accepted without a
25+
compile error on Clang.
26+
127
What's new in v2.0:
228

329
* Various bug fixes.
30+
* Intel compiler is now supported on Windows. Newer versions of other compilers
31+
are now supported.
432

533
What's new in v2.0~rc2:
634

0 commit comments

Comments
 (0)