Skip to content

[WIP] test enabling i128 lowering for emscripten #49487

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from

Conversation

est31
Copy link
Member

@est31 est31 commented Mar 29, 2018

Maybe this fixes the issues emscripten has with i128. Maybe not.

DO NOT MERGE

@est31 est31 force-pushed the rustbook_checking branch from 401222f to 2515c5c Compare March 29, 2018 20:37
@est31
Copy link
Member Author

est31 commented Mar 29, 2018

I see the following failures:

run-pass/float-int-invalid-const-cast.rs

[01:35:06]   = note: Unsupported:   call void @_ZN28float_int_invalid_const_cast5force17haaefff15b0074e85E(i128 0)
[01:35:06]           LLVM ERROR: Instruction not yet supported for integer types larger than 64 bits
[01:35:06]           Traceback (most recent call last):
[01:35:06]             File "/emsdk-portable/emscripten/1.37.13//emcc", line 13, in <module>
[01:35:06]               emcc.run()
[01:35:06]             File "/emsdk-portable/emscripten/1.37.13/emcc.py", line 1526, in run
[01:35:06]               final = shared.Building.emscripten(final, append_ext=False, extra_args=extra_args)

run-pass/i128.rs

[01:35:06]   = note: Unsupported:   %699 = call { i128, i1 } @llvm.smul.with.overflow.i128(i128 11259375, i128 11259375)
[01:35:06]           LLVM ERROR: Instruction not yet supported for integer types larger than 64 bits

run-pass/intrinsics-integer.rs

[01:35:06]   = note: Unsupported:   %2311 = call i128 @llvm.ctpop.i128(i128 0)
[01:35:06]           LLVM ERROR: Instruction not yet supported for integer types larger than 64 bits

run-pass/saturating-float-casts.rs

[01:35:06]   = note: Unsupported:   %20610 = fptosi float %20609 to i128
[01:35:06]           LLVM ERROR: Instruction not yet supported for integer types larger than 64 bits

So every test I enabled failed. It tested the asmjs-unknown-emscripten target.

@est31
Copy link
Member Author

est31 commented Mar 29, 2018

Unsupported: call void @_ZN28float_int_invalid_const_cast5force17haaefff15b0074e85E(i128 0)
LLVM ERROR: Instruction not yet supported for integer types larger than 64 bits

hmmm this is something else than lowering that fails.

@scottmcm
Copy link
Member

Not even being able to pass/return i128 was what blocked me last time:

// asmjs can't even pass i128 as arguments or return values, so ignore it.
// this will hopefully be fixed by the LLVM 5 upgrade (#43370)
// ignore-asmjs
// ignore-emscripten

@est31
Copy link
Member Author

est31 commented Mar 30, 2018

Guess I'm closing this then.

@est31 est31 closed this Mar 30, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants