Usually this will abort fast-isel at the instruction using the non-legal result, but if the only use is in a different basic block, we'll incorrectly assume that the zext/sext is to i32 (rather than i128 in this case).
Details
Details
- Reviewers
tlively - Commits
- rZORG8378e782ea26: [WebAssembly] Don't assume that zext/sext result is i32/i64 in fast isel…
rZORGb5b536950bc1: [WebAssembly] Don't assume that zext/sext result is i32/i64 in fast isel…
rG8378e782ea26: [WebAssembly] Don't assume that zext/sext result is i32/i64 in fast isel…
rGb5b536950bc1: [WebAssembly] Don't assume that zext/sext result is i32/i64 in fast isel…
rG323dc634b984: [WebAssembly] Don't assume that zext/sext result is i32/i64 in fast isel…
rL360616: [WebAssembly] Don't assume that zext/sext result is i32/i64 in fast isel…
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Thanks for fixing this! I have a few comments on the test style, but otherwise LGTM.
llvm/test/CodeGen/WebAssembly/PR41841.ll | ||
---|---|---|
1 ↗ | (On Diff #199134) | We usually pass -asm-verbose=false in our tests to avoid having to match uninteresting output. |
18 ↗ | (On Diff #199134) | Please move the CHECK lines to be right before the top of the function |
36 ↗ | (On Diff #199134) | Please standardize the whitespace to make the start of the instructions line up. |