[llvm] 1a3da0b - [LoongArch] Add test case showing suboptimal codegen when zero extending

Weining Lu via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 24 18:31:50 PDT 2023


Author: WANG Rui
Date: 2023-07-25T09:31:33+08:00
New Revision: 1a3da0bc1e5a6b785d9f003abc82912f2e3351ac

URL: https://github.com/llvm/llvm-project/commit/1a3da0bc1e5a6b785d9f003abc82912f2e3351ac
DIFF: https://github.com/llvm/llvm-project/commit/1a3da0bc1e5a6b785d9f003abc82912f2e3351ac.diff

LOG: [LoongArch] Add test case showing suboptimal codegen when zero extending

Add test case showing suboptimal codegen when zero extending.

Signed-off-by: WANG Rui <wangrui at loongson.cn>

Reviewed By: xen0n

Differential Revision: https://reviews.llvm.org/D154918

Added: 
    llvm/test/CodeGen/LoongArch/sext-cheaper-than-zext.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/LoongArch/sext-cheaper-than-zext.ll b/llvm/test/CodeGen/LoongArch/sext-cheaper-than-zext.ll
new file mode 100644
index 00000000000000..4e64c1af559a90
--- /dev/null
+++ b/llvm/test/CodeGen/LoongArch/sext-cheaper-than-zext.ll
@@ -0,0 +1,17 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc --mtriple=loongarch64 < %s | FileCheck %s
+
+define signext i32 @sext_icmp(i32 signext %x, i32 signext %y) {
+; CHECK-LABEL: sext_icmp:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    bstrpick.d $a1, $a1, 31, 0
+; CHECK-NEXT:    addi.d $a0, $a0, 1
+; CHECK-NEXT:    bstrpick.d $a0, $a0, 31, 0
+; CHECK-NEXT:    xor $a0, $a0, $a1
+; CHECK-NEXT:    sltu $a0, $zero, $a0
+; CHECK-NEXT:    ret
+  %1 = add nsw i32 %x, 1
+  %2 = icmp ne i32 %1, %y
+  %3 = zext i1 %2 to i32
+  ret i32 %3
+}


        


More information about the llvm-commits mailing list