[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