I'm getting errors when including wasm_simd128.h:
In file included from ../x86/sse.c:25:
In file included from ../../test/x86/test-sse2.h:1:
In file included from ../x86/../../simde/x86/sse2.h:35:
In file included from ../x86/../../simde/x86/sse.h:57:
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:639:27: error: used type '__attribute__((__vector_size__(16 * sizeof(char)))) char' (vector of 16 'char' values) where arithmetic or pointer type is required
return (v128_t)(a_ < b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:646:27: error: used type '__attribute__((__vector_size__(16 * sizeof(char)))) char' (vector of 16 'char' values) where arithmetic or pointer type is required
return (v128_t)(a_ < b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:654:27: error: used type '__attribute__((__vector_size__(16 * sizeof(char)))) char' (vector of 16 'char' values) where arithmetic or pointer type is required
return (v128_t)(a_ > b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:661:27: error: used type '__attribute__((__vector_size__(16 * sizeof(char)))) char' (vector of 16 'char' values) where arithmetic or pointer type is required
return (v128_t)(a_ > b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:739:27: error: used type '__attribute__((__vector_size__(8 * sizeof(short)))) short' (vector of 8 'short' values) where arithmetic or pointer type is required
return (v128_t)(a_ < b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:746:27: error: used type '__attribute__((__vector_size__(8 * sizeof(short)))) short' (vector of 8 'short' values) where arithmetic or pointer type is required
return (v128_t)(a_ < b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:753:27: error: used type '__attribute__((__vector_size__(8 * sizeof(short)))) short' (vector of 8 'short' values) where arithmetic or pointer type is required
return (v128_t)(a_ > b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:760:27: error: used type '__attribute__((__vector_size__(8 * sizeof(short)))) short' (vector of 8 'short' values) where arithmetic or pointer type is required
return (v128_t)(a_ > b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:817:27: error: used type '__attribute__((__vector_size__(4 * sizeof(long)))) long' (vector of 4 'long' values) where arithmetic or pointer type is required
return (v128_t)(a_ < b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:824:27: error: used type '__attribute__((__vector_size__(4 * sizeof(long)))) long' (vector of 4 'long' values) where arithmetic or pointer type is required
return (v128_t)(a_ < b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:831:27: error: used type '__attribute__((__vector_size__(4 * sizeof(long)))) long' (vector of 4 'long' values) where arithmetic or pointer type is required
return (v128_t)(a_ > b_ ? a_ : b_);
~~~~~~~ ^
/home/travis/build/nemequ/simde/emsdk/upstream/emscripten/system/include/wasm_simd128.h:838:27: error: used type '__attribute__((__vector_size__(4 * sizeof(long)))) long' (vector of 4 'long' values) where arithmetic or pointer type is required
return (v128_t)(a_ > b_ ? a_ : b_);
~~~~~~~ ^
12 errors generated.
I'm guessing this is due to a53e9e7eb7d2197544c22ca16292e152999897c5, so maybe @tlively will want to take a look? Here is an example of a failed build on CI, which includes the build commands: https://travis-ci.org/nemequ/simde/jobs/659017514.
Thanks for the report! This is strange because that change passed our CI just fine. I鈥檒l investigate more today.
It turns out that these errors are generated when compiling as C, but not C++. A fix will require adding a new builtin function to clang. It shouldn't take too long.
CI isn't failing for me anymore, so I guess the changes made it out to LLVM? I don't want to close this in case something is still pending, but from my perspective it seems resolved. Thanks, @tlively!
Yes, this has been resolved and is fixed in the emscripten version tagged this morning.
Most helpful comment
It turns out that these errors are generated when compiling as C, but not C++. A fix will require adding a new builtin function to clang. It shouldn't take too long.