packed_simd_2 0.3.8

Portable Packed SIMD vectors
Documentation
language: rust
rust: nightly
os: linux
dist: focal

stages:
  - tools
  - build-test-verify # Passes full test suite, permit no regressions (unless it's rustup :/)
  - 32bit-tier1
  - 64bit-tier2
  - 32bit-tier2

jobs:
  fast_finish: true
  include:
    # Android:
    - env: TARGET=x86_64-linux-android
      name: "x86_64-unknown-linux-android + SSE2"
      stage: build-test-verify
    - env: TARGET=arm-linux-androideabi
      name: "arm-linux-androideabi"
      stage: build-test-verify
    - name: "aarch64-unknown-linux-android + NEON"
      env: TARGET=aarch64-linux-android RUSTFLAGS="-C target-feature=+neon"
      stage: build-test-verify
    - env: TARGET="thumbv7neon-linux-androideabi"
      name: "thumbv7neon-linux-androideabi"
      stage: 32bit-tier2
    # Linux:
    - env: TARGET=i586-unknown-linux-gnu
      name: "i586-unknown-linux-gnu"
      stage: 32bit-tier2
    - env: TARGET=i586-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse"
      name: "i586-unknown-linux-gnu + SSE"
      stage: 32bit-tier2
    - env: TARGET=i586-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse2"
      name: "i586-unknown-linux-gnu + SSE2"
      stage: 32bit-tier2
    - env: TARGET=i686-unknown-linux-gnu
      name: "i686-unknown-linux-gnu + SSE2"
      stage: 32bit-tier1
    - env: TARGET=i686-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse4.2"
      name: "i686-unknown-linux-gnu + SSE4.2"
      stage: 32bit-tier1
    - env: TARGET=i686-unknown-linux-gnu RUSTFLAGS="-C target-feature=+avx2"
      name: "i686-unknown-linux-gnu + AVX2"
      stage: 32bit-tier1
    - env: TARGET=x86_64-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse4.2"
      name: "x86_64-unknown-linux-gnu + SSE4.2"
      stage: build-test-verify
    - env: TARGET=x86_64-unknown-linux-gnu RUSTFLAGS="-C target-feature=+avx2"
      name: "x86_64-unknown-linux-gnu + AVX2"
      stage: build-test-verify
    - env: TARGET=arm-unknown-linux-gnueabihf
      name: "arm-unknown-linux-gnueabihf"
      stage: build-test-verify
    - env: TARGET=armv7-unknown-linux-gnueabihf
      name: "armv7-unknown-linux-gnueabihf"
      stage: build-test-verify
    - env: TARGET=armv7-unknown-linux-gnueabihf RUSTFLAGS="-C target-feature=+neon"
      name: "armv7-unknown-linux-gnueabihf + NEON"
      stage: build-test-verify
    - env: TARGET="thumbv7neon-unknown-linux-gnueabihf"
      name: "thumbv7neon-unknown-linux-gnueabihf"
      stage: 32bit-tier2
    - name: "aarch64-unknown-linux-gnu + NEON"
      env: TARGET=aarch64-unknown-linux-gnu RUSTFLAGS="-C target-feature=+neon"
      stage: build-test-verify
    - env: TARGET=mips-unknown-linux-gnu
      name: "mips-unknown-linux-gnu"
      stage: 32bit-tier2
    - env: TARGET=mipsel-unknown-linux-musl
      name: "mipsel-unknown-linux-musl"
      stage: 32bit-tier2
    - env: TARGET=mips64-unknown-linux-gnuabi64
      name: "mips64-unknown-linux-gnuabi64"
      stage: 64bit-tier2
    - env: TARGET=mips64el-unknown-linux-gnuabi64
      name: "mips64el-unknown-linux-gnuabi64"
      stage: 64bit-tier2
      # FIXME: https://github.com/rust-lang-nursery/packed_simd/issues/18
      # env: TARGET=mips64el-unknown-linux-gnuabi64 RUSTFLAGS="-C target-feature=+msa -C target-cpu=mips64r6"
    - env: TARGET=powerpc-unknown-linux-gnu
      name: "powerpc-unknown-linux-gnu"
      stage: 32bit-tier2
    - env: TARGET=powerpc64-unknown-linux-gnu
      name: "powerpc64-unknown-linux-gnu"
      stage: 64bit-tier2
    - name: "powerpc64le-unknown-linux-gnu"
      env: TARGET=powerpc64le-unknown-linux-gnu
      stage: build-test-verify
    - name: "powerpc64le-unknown-linux-gnu + ALTIVEC"
      env: TARGET=powerpc64le-unknown-linux-gnu RUSTFLAGS="-C target-feature=+altivec"
      stage: build-test-verify
    - name: "powerpc64le-unknown-linux-gnu + VSX"
      env: TARGET=powerpc64le-unknown-linux-gnu RUSTFLAGS="-C target-feature=+vsx"
      stage: build-test-verify
    - name: "s390x-unknown-linux-gnu"
      env: TARGET=s390x-unknown-linux-gnu
      stage: 64bit-tier2
    - env: TARGET=sparc64-unknown-linux-gnu
      name: "sparc64-unknown-linux-gnu"
      stage: 64bit-tier2
    # WebAssembly:
    - env: TARGET=wasm32-unknown-unknown
      name: "wasm32-unknown-unknown"
      stage: 32bit-tier2
    # MacOSX:
    - os: osx
      env: TARGET=x86_64-apple-darwin RUSTFLAGS="-C target-feature=+sse4.2"
      name: "x86_64-apple-darwin + SSE4.2"
      install: true
      script: ci/run.sh
      osx_image: xcode10
      stage: build-test-verify
      # Travis-CI OSX build bots do not support AVX2:
    - os: osx
      env: TARGET=x86_64-apple-darwin RUSTFLAGS="-C target-feature=+avx"
      name: "x86_64-apple-darwin + AVX"
      install: true
      script: ci/run.sh
      osx_image: xcode10
      stage: build-test-verify
    # *BSDs:
    #- env: TARGET=i686-unknown-freebsd NORUN=1
    #  script: ci/run.sh
    #- env: TARGET=x86_64-unknown-freebsd NORUN=1
    #  script: ci/run.sh
    #- env: TARGET=x86_64-unknown-netbsd NORUN=1
    #  script: ci/run.sh
    # Solaris:
    #- env: TARGET=x86_64-sun-solaris NORUN=1
    #  script: ci/run.sh
    # iOS:
    - os: osx
      env: TARGET=x86_64-apple-ios
      name: "x86_64-apple-ios + SSE2"
      script: ci/run.sh
      osx_image: xcode9.4
      stage: 64bit-tier2
    - name: "aarch64-apple-ios + NEON"
      env: TARGET=aarch64-apple-ios RUSTFLAGS="-C target-feature=+neon"
      os: osx
      osx_image: xcode9.4
      script: ci/run.sh
      stage: 64bit-tier2
    # BENCHMARKS:
    - name: "Benchmarks - x86_64-unknown-linux-gnu"
      install: TARGET=x86_64-unknown-linux-gnu ./ci/setup_benchmarks.sh
      # FIXME: Use `core_arch,sleef-sys` features once they works again
      script: PATH=$(pwd):$PATH NORUN=1 VERIFY=1 FEATURES=ispc ci/benchmark.sh
      stage: tools
    - name: "Benchmarks - x86_64-apple-darwin"
      install: TARGET=x86_64-apple-darwin ./ci/setup_benchmarks.sh
      # FIXME: Use `core_arch,sleef-sys` features once they works again
      script: PATH=$(pwd):$PATH NORUN=1 VERIFY=1 FEATURES=ispc ci/benchmark.sh
      os: osx
      osx_image: xcode9.4
      stage: tools
    # TOOLS:
    - name: "Documentation"
      before_install:
        - sudo add-apt-repository -y ppa:deadsnakes/ppa
        - sudo apt-get update -y
        - sudo apt-get install -y python3.9
      install:
        - cargo install mdbook
      script: ci/dox.sh
      stage: tools
    - name: "rustfmt"
      install: true
      script: |
        rustup toolchain install nightly -c rustfmt --allow-downgrade
        ci/all.sh check_fmt || true
      stage: tools

  allow_failures:
    # FIXME: ISPC cannot be found?
    - name: "Benchmarks - x86_64-apple-darwin"
    # FIXME: i686 fails in inlining, apparently
    - stage: 32bit-tier1
    #- env: TARGET=i686-unknown-freebsd NORUN=1
    #- env: TARGET=x86_64-unknown-freebsd NORUN=1
    #- env: TARGET=x86_64-unknown-netbsd NORUN=1
    #- env: TARGET=x86_64-sun-solaris NORUN=1

    # FIXME: TBD
    - stage: 64bit-tier2
    - stage: 32bit-tier2

    # FIXME: iOS
    # https://github.com/rust-lang-nursery/packed_simd/issues/26
    - env: TARGET=x86_64-apple-ios
    # Is this related to the above? Mysterious test failure
    - name: "aarch64-apple-ios + NEON"

install: travis_retry rustup target add $TARGET
before_script: cargo generate-lockfile
script: travis_wait 50 ci/run-docker.sh
after_script: sleep 5

env:
  global:
    secure: "lPHv7s6+AxQYNaFncycVFQt++Y1asQmMhOikQU1ztlP8CK7+hn2m98cg/euOJyzIOb2iJ3ZX4cGZkzw4lc59MQBByb1GtDbazQoUOzVDbVfe9BDD2f8JVoIFh1CMfjPKQ7Gg/rJqWlwrUlSd5GNxPCutKjY7qZhJuR6SQbJjlWaGN2Vd4fVCzKXz8fHRXgMEZS+d+CR4Nsrkb83J3Z4s5kSdJmhYxJ61AWjuzJVwUh4l3/HEYlSL5XXpuh5R2i7W16h1PlNdaTUgkZli1lHzO8+6Q8LzX9+XiLIEVX9lw3A2NdIKGz8E/+7Qs5oYOkwYhjROsDQxIK7xkSM30bQuN7cwMBybAVIyOPJkqXQ1dQyp83KSdsOj7JMyDDRvcEDLI6ehRlm5EcdH7YrReuboN81iUo0Sa7VsuUmgj5hjERCt9r30f9aWuitABai7vKRtjglg7Sp5CrEVPA4PQs6PqKCCRogoggbXJ/Z5Dyw/RZaXPeNR9+qIKN1Vjm9Gew1sRN2JK/3+vXTKtyJXH/uBxgJt4jQlbuShOJuF+BSfTF88sMe67a/357SSOIb4JkaCyd0flDCWYE8576kaHPlVVMT2peXee0LeRXm1e13nG3Na0t3LS/orJLPHOShNQGoDj7qAP5aEKggRya896JGwtvlaBHHTmSQh65G7cyNErZo="
branches:
  only:
    - staging # bors r+
    - trying  # bors try
    - master
notifications:
  email:
    on_success: never