[PATCH] D110170: [InstCombine] fold cast of right-shift if high bits are not demanded

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 22 12:54:52 PDT 2021


spatel added a comment.

In D110170#3015960 <https://reviews.llvm.org/D110170#3015960>, @nemanjai wrote:

> Reduced test case at https://pastebin.com/NVYbsRfD
>
> Run `opt -O3 -mtriple=powerpc64le-- -disable-output file.ll` and it doesn't terminate.

Thanks! It should be easy to find the opposing transform now. I got that test down to an infinite loop with -instcombine and:

  declare void @use(i64)
  
  define i64 @t0(i64 %x) {
    %a = ashr i64 %x, 3
    call void @use(i64 %a)
    %tr = trunc i64 %a to i32
    %sh = lshr i32 %tr, 6
    %z = zext i32 %sh to i64
    ret i64 %z
  }


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D110170/new/

https://reviews.llvm.org/D110170



More information about the llvm-commits mailing list