[llvm] 9892094 - [SLC] Use unsigned char to fix test failures on some platforms

Dávid Bolvanský via llvm-commits llvm-commits at lists.llvm.org
Sun May 7 06:50:56 PDT 2023


Author: Dávid Bolvanský
Date: 2023-05-07T15:50:49+02:00
New Revision: 9892094a8b6f73b5bc5a5d1ac6bac45fad8ce719

URL: https://github.com/llvm/llvm-project/commit/9892094a8b6f73b5bc5a5d1ac6bac45fad8ce719
DIFF: https://github.com/llvm/llvm-project/commit/9892094a8b6f73b5bc5a5d1ac6bac45fad8ce719.diff

LOG: [SLC] Use unsigned char to fix test failures on some platforms

Added: 
    

Modified: 
    llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
    llvm/test/Transforms/InstCombine/memchr.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
index 400c316fc1a1..3ef3a88d243e 100644
--- a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
@@ -1413,7 +1413,7 @@ Value *LibCallSimplifier::optimizeMemChr(CallInst *CI, IRBuilderBase &B) {
       return nullptr;
 
     SmallVector<Value *> CharCompares;
-    for (char C : SortedStr)
+    for (unsigned char C : SortedStr)
       CharCompares.push_back(
           B.CreateICmpEQ(CharVal, ConstantInt::get(CharVal->getType(), C)));
 

diff  --git a/llvm/test/Transforms/InstCombine/memchr.ll b/llvm/test/Transforms/InstCombine/memchr.ll
index 213238cfdea1..f4b6734cfd7d 100644
--- a/llvm/test/Transforms/InstCombine/memchr.ll
+++ b/llvm/test/Transforms/InstCombine/memchr.ll
@@ -174,9 +174,11 @@ define i1 @test14(i32 %C) {
 
 define i1 @test15(i32 %C) {
 ; CHECK-LABEL: @test15(
-; CHECK-NEXT:    [[TMP1:%.*]] = add i32 [[C:%.*]], 2
-; CHECK-NEXT:    [[TMP2:%.*]] = icmp ult i32 [[TMP1]], 3
-; CHECK-NEXT:    ret i1 [[TMP2]]
+; CHECK-NEXT:    [[TMP1:%.*]] = icmp eq i32 [[C:%.*]], 0
+; CHECK-NEXT:    [[TMP2:%.*]] = and i32 [[C]], -2
+; CHECK-NEXT:    [[TMP3:%.*]] = icmp eq i32 [[TMP2]], 254
+; CHECK-NEXT:    [[TMP4:%.*]] = or i1 [[TMP3]], [[TMP1]]
+; CHECK-NEXT:    ret i1 [[TMP4]]
 ;
   %dst = call ptr @memchr(ptr @negative, i32 %C, i32 3)
   %cmp = icmp ne ptr %dst, null


        


More information about the llvm-commits mailing list