You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What I don't understand is why the instruction combining pass isn't
eliminating it - it happily eliminates the analogous "and" in various
simpler, artificial, testcases.
My intention isn't to handle every single case that instcombine does :). If you see a common idiom that a
front-end generates often, we can handle those. Otherwise, they'll get caught by the code generator.
-Chris
llvmbot
transferred this issue from llvm/llvm-bugzilla-archive
Dec 3, 2021
Extended Description
Running opt -std-compile-opts on the attached bytecode results in:
([7 x i8]* @str1 to i32) to i64), i64 4294967295), i64 shl (i64 zext (i32
ptrtoint (%struct.string___XUB* @C.1.384 to i32) to i64), i64 32)) )
Note how an i32 is being zero extended to an i64, then the upper 32 bits of
the result, which are necessarily zero, are being pointlessly masked off.
The text was updated successfully, but these errors were encountered: