Skip to content

Commit

Permalink
Merge branch 'master' into libsimdpp-2.x
Browse files Browse the repository at this point in the history
  • Loading branch information
p12tic committed Dec 14, 2017
2 parents 2545b97 + df02667 commit ecd9282
Show file tree
Hide file tree
Showing 1,219 changed files with 39,273 additions and 14,402 deletions.
52 changes: 52 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@

# General
# -------

# version format
version: 2.1.{build}

# branches to build
branches:
only:
- master
- dev
- cxx98
- cxx98-staging

max_jobs: 1

# Environment
# -----------

image:
- Visual Studio 2013
- Visual Studio 2015
- Visual Studio 2017

shallow_clone: true

clone_folder: c:\projects\libsimdpp

# Build configuration
# -------------------

before_build:
- cd c:\projects\libsimdpp
- if exist build rmdir build /s /q
- mkdir build
- cd build
- cmake ..

build_script:
- cd c:\projects\libsimdpp\build
- cmake --build . --target test_insn
- cmake --build . --target test_dispatcher
- cmake --build . --target test_expr


# Tests configuration
# -------------------

test_script:
- cd c:\projects\libsimdpp\build
- cmake --build . --target check
13 changes: 10 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
build
*.user*
*~
# Documentation output
doc/output
doc/reference
# QtCreator files
libsimdpp.config
libsimdpp.creator
libsimdpp.includes
libsimdpp.files
*.user*
# Misc files created during local development
*~
build*
venv
pywiki
124 changes: 124 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
dist: trusty
sudo: false
language:
- cpp

matrix:
include:
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.9
env:
- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"

- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
env:
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"

- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6
env:
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"

- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
env:
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"

- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.6
packages:
- clang-3.6
env:
- MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6"

- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
packages:
- clang-3.7
env:
- MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7"

- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
packages:
- clang-3.8
env:
- MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"

- os: linux
addons:
apt:
sources:
- llvm-toolchain-trusty-3.9
packages:
- clang-3.9
env:
- MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"

- os: linux
addons:
apt:
sources:
- llvm-toolchain-trusty-4.0
packages:
- clang-4.0
env:
- MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"

- os: linux
addons:
apt:
sources:
- llvm-toolchain-trusty-5.0
packages:
- clang-5.0
env:
- MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"

- os: osx
osx_image: xcode9

- os: osx
osx_image: xcode8.3

- os: osx
osx_image: xcode7.3

before_install:
- eval "${MATRIX_EVAL}"

script:
- mkdir build && cd build && cmake .. && make check -j2
8 changes: 5 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

cmake_minimum_required(VERSION 2.8.0)
project(libsimdpp)
set(PROJECT_VERSION "2.0-rc2")
set(SIMDPP_API_VERSION "2.0")
set(PROJECT_VERSION "2.1")
set(SIMDPP_API_VERSION "2.1")

set(PKG_NAME "${CMAKE_PROJECT_NAME}")
set(PKG_FULL_NAME "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}")
Expand All @@ -28,8 +28,10 @@ add_custom_target(dist
# ------------------------------------------------------------------------------
# Check what instruction sets the current host supports. Use them for testing
include(SimdppMultiarch)
simdpp_get_runnable_archs(NATIVE_ARCHS)
message(STATUS "Checking instruction set support in the compiler...")
simdpp_get_compilable_archs(COMPILABLE_ARCHS)
message(STATUS "Checking instruction sets to run tests for on this host...")
simdpp_get_runnable_archs(NATIVE_ARCHS)
# ------------------------------------------------------------------------------

set(SIMDPP_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include/${PKG_NAME}-${SIMDPP_API_VERSION}")
Expand Down
45 changes: 45 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Contributions to the library are gladly accepted.

The main development happens in https://github.com/p12tic/libsimdpp repository.

If you don't have time to submit a bug fix, please open an issue report on
GitHub so at least the problem is known. The same applies to improvements -
don't hesitate to open feature request so that the design of new APIs could
take your use case into account.

Documentation
-------------

The documentation is written on a MediaWiki instance which is currently private.
If you find a problem in the documentation, please open an issue with a link to
the page in question.

Code changes
------------

Please test your code changes by running the following:

```
mkdir build
cd build
cmake ..
# on Linux / macOS
make check -j8
# on Windows
cmake --build . --target check
```

Please use the `dev` branch as a target for pull requests. The reason for this
is that the public continuous integration services used by the library cover
only SSE2-AVX2 instruction sets. The rest are periodically tested on a private
test farm. Due to the number of tested compilers and library configurations
this testing is usually done only on each merge from the `dev` branch to
the `master` branch.

Code style
----------

C-style pointer casts are discouraged, use reinterpret_cast for that. For
non-pointer types C-style casts are preferred over static_cast or constructor.
28 changes: 28 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,6 +1,34 @@
What's new in v2.1:
* Various bug fixes
* Documentation has been significantly improved. The public API is now almost
fully documented.
* Added support for MIPS MSA instruction set.
* Added support for PowerPC VSX v2.06 and v2.07 instruction sets.
* Added support for x86 AVX512BW, AVX512DQ and AVX512VL instruction sets.
* Added support for 64-bit little-endian PowerPC.
* Added support for arbitrary width vectors in extract() and insert()
* Added support for arbitrary source vectors to to_int8(), to_uint8(),
to_int16(), to_uint16(), to_int32(), to_uint32(), to_int64(), to_uint64(),
to_float32(), to_float64().
* Added support for per-element integer shifts to shift_r() and shift_l().
Fallback paths are provided for SSE2-AVX instruction sets that lack
hardware per-element integer shift support.
* Make shuffle_bytes16(), shuffle_zbytes16(), permute_bytes16() and
permute_zbytes() more generic.
* New functions: popcnt, reduce_popcnt, for_each, to_mask()
* Xcode is now supported.
* The library has been refactored in such a way that older compilers are able
to optimize vector emulation code paths much better than before.
* Deprecation: implicit conversion operators to native vector types has been
deprecated and a replacement method has been provided instead. The implicit
conversion operators may lead to wrong code being accepted without a
compile error on Clang.

What's new in v2.0:

* Various bug fixes.
* Intel compiler is now supported on Windows. Newer versions of other compilers
are now supported.

What's new in v2.0~rc2:

Expand Down
Loading

0 comments on commit ecd9282

Please sign in to comment.