diff options
author | WANG Rui <wangrui@loongson.cn> | 2023-07-25 09:22:18 +0800 |
---|---|---|
committer | Weining Lu <luweining@loongson.cn> | 2023-07-25 09:31:33 +0800 |
commit | 1a3da0bc1e5a6b785d9f003abc82912f2e3351ac (patch) | |
tree | d4c2b3a8f2b25381c2a441e7b3a62a06f4530c17 | |
parent | ac6e55146f8c48f8ced95dfe54004142c0b36756 (diff) | |
download | llvm-1a3da0bc1e5a6b785d9f003abc82912f2e3351ac.zip llvm-1a3da0bc1e5a6b785d9f003abc82912f2e3351ac.tar.gz llvm-1a3da0bc1e5a6b785d9f003abc82912f2e3351ac.tar.bz2 |
[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@loongson.cn>
Reviewed By: xen0n
Differential Revision: https://reviews.llvm.org/D154918
-rw-r--r-- | llvm/test/CodeGen/LoongArch/sext-cheaper-than-zext.ll | 17 |
1 files changed, 17 insertions, 0 deletions
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 0000000..4e64c1a --- /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 +} |