[PATCH] D134348: [InstSimplify] Support vectors in simplifyWithOpReplaced()
    Sanjay Patel via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Sep 21 07:41:06 PDT 2022
    
    
  
spatel added a comment.
Seems right, but do we have tests that exercise the call restriction? Maybe something like these:
  declare <2 x i32> @llvm.sadd.sat.v2i32(<2 x i32>, <2 x i32>)
  declare <2 x i32> @arbitrary_call(<2 x i32>)
  
  define <2 x i32> @could_fold(<2 x i32> %x, <2 x i32> %y) {
    %a = call <2 x i32> @llvm.sadd.sat.v2i32(<2 x i32> %x, <2 x i32> <i32 42, i32 42>)
    %cond = icmp eq <2 x i32> %x, zeroinitializer
    %s = select <2 x i1> %cond, <2 x i32> %a, <2 x i32> %y
    ret <2 x i32> %s
  }
  
  define <2 x i32> @must_not_fold(<2 x i32> %x, <2 x i32> %y) {
    %a = call <2 x i32> @arbitrary_call(<2 x i32> %x)
    %cond = icmp eq <2 x i32> %x, zeroinitializer
    %s = select <2 x i1> %cond, <2 x i32> %a, <2 x i32> %y
    ret <2 x i32> %s
  }
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134348/new/
https://reviews.llvm.org/D134348
    
    
More information about the llvm-commits
mailing list