Skip to content

LLVM assert with SIMD and Emscripten #45351

Closed
@alexcrichton

Description

@alexcrichton

Fails with:

            %21 = trunc <4 x i32> %_93.12.vec.insert.i to <4 x i8>
          LLVM ERROR: invalid vector instr

full error:

failures:

---- [run-pass] run-pass/simd-intrinsic-generic-cast.rs stdout ----
	
error: compilation failed!
status: exit code: 101
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/run-pass/simd-intrinsic-generic-cast.rs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass" "--target=asmjs-unknown-emscripten" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass/simd-intrinsic-generic-cast.stage2-asmjs-unknown-emscripten.js" "-Crpath" "-O" "-Lnative=/checkout/obj/build/asmjs-unknown-emscripten/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass/simd-intrinsic-generic-cast.stage2-asmjs-unknown-emscripten.run-pass.libaux"
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
error: linking with `emcc` failed: exit code: 1
  |
  = note: "emcc" "-s" "DISABLE_EXCEPTION_CATCHING=0" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass/simd-intrinsic-generic-cast.simd_intrinsic_generic_cast0.rust-cgu.o" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass/simd-intrinsic-generic-cast.stage2-asmjs-unknown-emscripten.js" "-s" "EXPORTED_FUNCTIONS=[\"_main\",\"___rdl_grow_in_place\",\"___rdl_shrink_in_place\",\"___rdl_alloc_excess\",\"___rdl_alloc\",\"___rdl_oom\",\"___rdl_usable_size\",\"___rdl_dealloc\",\"___rdl_realloc_excess\",\"___rdl_realloc\",\"___rdl_alloc_zeroed\",\"_rust_eh_personality\"]" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass/simd-intrinsic-generic-cast.crate.allocator.rust-cgu.o" "-O2" "--memory-init-file" "0" "-g0" "-s" "DEFAULT_LIBRARY_FUNCS_TO_INCLUDE=[]" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass" "-L" "/checkout/obj/build/asmjs-unknown-emscripten/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass/simd-intrinsic-generic-cast.stage2-asmjs-unknown-emscripten.run-pass.libaux" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/libtest-7174f69942758dfc.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/libterm-b41696b9a2882d36.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/libgetopts-e55773ea6141a812.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/libstd-5e8ebc384e5dfd82.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/libpanic_unwind-368647e9b9ca3b39.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/libunwind-eda6aedbad712bc0.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/liballoc_system-67992b04c9027e70.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/liblibc-bdd38e4620ffab1c.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/liballoc-c15d9e20191e711b.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/libstd_unicode-b3230a4723442795.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/librand-efc56d5e4c2b1ee8.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/libcore-3181dd9e46400ebd.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/asmjs-unknown-emscripten/lib/libcompiler_builtins-fa8533728d55e42b.rlib" "-l" "c" "-s" "ERROR_ON_UNDEFINED_SYMBOLS=1"
  = note: INFO:root:generating system asset: is_vanilla.txt... (this will be cached in "/home/user/.emscripten_cache/is_vanilla.txt" for subsequent builds)
          INFO:root: - ok
          INFO:root:(Emscripten: Running sanity checks)
          WARNING:root:java does not seem to exist, required for closure compiler, which is optional (define JAVA in /emsdk-portable/.emscripten if you want it)
          WARNING:root:closure compiler will not be available
          INFO:root:generating system library: libc.bc... (this will be cached in "/home/user/.emscripten_cache/asmjs/libc.bc" for subsequent builds)
          INFO:root: - ok
          INFO:root:generating system library: dlmalloc.bc... (this will be cached in "/home/user/.emscripten_cache/asmjs/dlmalloc.bc" for subsequent builds)
          INFO:root: - ok
            %21 = trunc <4 x i32> %_93.12.vec.insert.i to <4 x i8>
          LLVM ERROR: invalid vector instr
          Traceback (most recent call last):
            File "/emsdk-portable/emscripten/1.37.13//emcc", line 13, in <module>
              emcc.run()
            File "/emsdk-portable/emscripten/1.37.13/emcc.py", line 1526, in run
              final = shared.Building.emscripten(final, append_ext=False, extra_args=extra_args)
            File "/emsdk-portable/emscripten/1.37.13/tools/shared.py", line 1963, in emscripten
              call_emscripten(cmdline)
            File "/emsdk-portable/emscripten/1.37.13/emscripten.py", line 2190, in _main
              temp_files.run_and_clean(lambda: main(
            File "/emsdk-portable/emscripten/1.37.13/tools/tempfiles.py", line 78, in run_and_clean
              return func()
            File "/emsdk-portable/emscripten/1.37.13/emscripten.py", line 2195, in <lambda>
              DEBUG=DEBUG,
            File "/emsdk-portable/emscripten/1.37.13/emscripten.py", line 2095, in main
              temp_files=temp_files, DEBUG=DEBUG)
            File "/emsdk-portable/emscripten/1.37.13/emscripten.py", line 93, in emscript
              backend_output = compile_js(infile, settings, temp_files, DEBUG)
            File "/emsdk-portable/emscripten/1.37.13/emscripten.py", line 127, in compile_js
              backend_output = open(temp_js).read()
          IOError: [Errno 2] No such file or directory: '/tmp/tmpVE4wuP.4.js'
          

error: aborting due to previous error


------------------------------------------

thread '[run-pass] run-pass/simd-intrinsic-generic-cast.rs' panicked at 'explicit panic', /checkout/src/tools/compiletest/src/runtest.rs:2478:8
note: Run with `RUST_BACKTRACE=1` for a backtrace.


failures:
    [run-pass] run-pass/simd-intrinsic-generic-cast.rs

test result: FAILED. 0 passed; 1 failed; 2792 ignored; 0 measured; 0 filtered out

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.A-SIMDArea: SIMD (Single Instruction Multiple Data)C-bugCategory: This is a bug.O-asmjsTarget: asm.js - http://asmjs.org/O-emscriptenTarget: 50% off wasm32-unknown-musl. the savings come out of stdio.h, but hey, you get SDL!T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions