Skip to content

[WIP] test enabling i128 lowering for emscripten#49487

Closed
est31 wants to merge 3 commits intorust-lang:masterfrom
est31:rustbook_checking
Closed

[WIP] test enabling i128 lowering for emscripten#49487
est31 wants to merge 3 commits intorust-lang:masterfrom
est31:rustbook_checking

Conversation

@est31
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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