[InstSimplify] fold or+shifted -1 to -1
These are similar to the rotate pattern added with: dcf659e8 ...but we don't have guard ops on the shift amount, so we don't canonicalize to the intrinsic. declare void @llvm.assume(i1) define i32 @src(i32 %shamt, i32 %bitwidth) { ; subtract must be in range of bitwidth %lt = icmp ule i32 %bitwidth, 32 call void @llvm.assume(i1 %lt) %r = lshr i32 -1, %shamt %s = sub i32 %bitwidth, %shamt %l = shl i32 -1, %s %o = or i32 %r, %l ret i32 %o } define i32 @tgt(i32 %shamt, i32 %bitwidth) { ret i32 -1 } https://alive2.llvm.org/ce/z/aF7WHx
Loading
Please sign in to comment