[llvm] 683e506 - [AArch64][test] Add more tests of add/sub with immediate

Ben Shi via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 27 02:05:28 PDT 2021


Author: Ben Shi
Date: 2021-09-27T09:05:21Z
New Revision: 683e50632449adf668e8c25bbcde3a814f987bb0

URL: https://github.com/llvm/llvm-project/commit/683e50632449adf668e8c25bbcde3a814f987bb0
DIFF: https://github.com/llvm/llvm-project/commit/683e50632449adf668e8c25bbcde3a814f987bb0.diff

LOG: [AArch64][test] Add more tests of add/sub with immediate

Reviewed By: dmgreen

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

Added: 
    

Modified: 
    llvm/test/CodeGen/AArch64/addsub.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/AArch64/addsub.ll b/llvm/test/CodeGen/AArch64/addsub.ll
index 53a9feaf59f9..4109e42b306d 100644
--- a/llvm/test/CodeGen/AArch64/addsub.ll
+++ b/llvm/test/CodeGen/AArch64/addsub.ll
@@ -149,6 +149,94 @@ define void @sub_med() {
   ret void
 }
 
+define i64 @add_two_parts_imm_i64(i64 %a) {
+; CHECK-LABEL: add_two_parts_imm_i64:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    mov w8, #42325
+; CHECK-NEXT:    movk w8, #170, lsl #16
+; CHECK-NEXT:    add x0, x0, x8
+; CHECK-NEXT:    ret
+  %b = add i64 %a, 11183445
+  ret i64 %b
+}
+
+define i32 @add_two_parts_imm_i32(i32 %a) {
+; CHECK-LABEL: add_two_parts_imm_i32:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    mov w8, #42325
+; CHECK-NEXT:    movk w8, #170, lsl #16
+; CHECK-NEXT:    add w0, w0, w8
+; CHECK-NEXT:    ret
+  %b = add i32 %a, 11183445
+  ret i32 %b
+}
+
+define i64 @add_two_parts_imm_i64_neg(i64 %a) {
+; CHECK-LABEL: add_two_parts_imm_i64_neg:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    mov x8, #-42325
+; CHECK-NEXT:    movk x8, #65365, lsl #16
+; CHECK-NEXT:    add x0, x0, x8
+; CHECK-NEXT:    ret
+  %b = add i64 %a, -11183445
+  ret i64 %b
+}
+
+define i32 @add_two_parts_imm_i32_neg(i32 %a) {
+; CHECK-LABEL: add_two_parts_imm_i32_neg:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    mov w8, #23211
+; CHECK-NEXT:    movk w8, #65365, lsl #16
+; CHECK-NEXT:    add w0, w0, w8
+; CHECK-NEXT:    ret
+  %b = add i32 %a, -11183445
+  ret i32 %b
+}
+
+define i64 @sub_two_parts_imm_i64(i64 %a) {
+; CHECK-LABEL: sub_two_parts_imm_i64:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    mov x8, #-42325
+; CHECK-NEXT:    movk x8, #65365, lsl #16
+; CHECK-NEXT:    add x0, x0, x8
+; CHECK-NEXT:    ret
+  %b = sub i64 %a, 11183445
+  ret i64 %b
+}
+
+define i32 @sub_two_parts_imm_i32(i32 %a) {
+; CHECK-LABEL: sub_two_parts_imm_i32:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    mov w8, #23211
+; CHECK-NEXT:    movk w8, #65365, lsl #16
+; CHECK-NEXT:    add w0, w0, w8
+; CHECK-NEXT:    ret
+  %b = sub i32 %a, 11183445
+  ret i32 %b
+}
+
+define i64 @sub_two_parts_imm_i64_neg(i64 %a) {
+; CHECK-LABEL: sub_two_parts_imm_i64_neg:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    mov w8, #42325
+; CHECK-NEXT:    movk w8, #170, lsl #16
+; CHECK-NEXT:    add x0, x0, x8
+; CHECK-NEXT:    ret
+  %b = sub i64 %a, -11183445
+  ret i64 %b
+}
+
+define i32 @sub_two_parts_imm_i32_neg(i32 %a) {
+; CHECK-LABEL: sub_two_parts_imm_i32_neg:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    mov w8, #42325
+; CHECK-NEXT:    movk w8, #170, lsl #16
+; CHECK-NEXT:    add w0, w0, w8
+; CHECK-NEXT:    ret
+  %b = sub i32 %a, -11183445
+  ret i32 %b
+}
+
 define void @testing() {
 ; CHECK-LABEL: testing:
 ; CHECK:       // %bb.0:
@@ -156,7 +244,7 @@ define void @testing() {
 ; CHECK-NEXT:    ldr x8, [x8, :got_lo12:var_i32]
 ; CHECK-NEXT:    ldr w9, [x8]
 ; CHECK-NEXT:    cmp w9, #4095
-; CHECK-NEXT:    b.ne .LBB5_6
+; CHECK-NEXT:    b.ne .LBB13_6
 ; CHECK-NEXT:  // %bb.1: // %test2
 ; CHECK-NEXT:    adrp x10, :got:var2_i32
 ; CHECK-NEXT:    ldr x10, [x10, :got_lo12:var2_i32]
@@ -164,26 +252,26 @@ define void @testing() {
 ; CHECK-NEXT:    str w11, [x8]
 ; CHECK-NEXT:    ldr w10, [x10]
 ; CHECK-NEXT:    cmp w10, #3567, lsl #12 // =14610432
-; CHECK-NEXT:    b.lo .LBB5_6
+; CHECK-NEXT:    b.lo .LBB13_6
 ; CHECK-NEXT:  // %bb.2: // %test3
 ; CHECK-NEXT:    add w11, w9, #2
 ; CHECK-NEXT:    cmp w9, #123
 ; CHECK-NEXT:    str w11, [x8]
-; CHECK-NEXT:    b.lt .LBB5_6
+; CHECK-NEXT:    b.lt .LBB13_6
 ; CHECK-NEXT:  // %bb.3: // %test4
 ; CHECK-NEXT:    add w11, w9, #3
 ; CHECK-NEXT:    cmp w10, #321
 ; CHECK-NEXT:    str w11, [x8]
-; CHECK-NEXT:    b.gt .LBB5_6
+; CHECK-NEXT:    b.gt .LBB13_6
 ; CHECK-NEXT:  // %bb.4: // %test5
 ; CHECK-NEXT:    add w11, w9, #4
 ; CHECK-NEXT:    cmn w10, #443
 ; CHECK-NEXT:    str w11, [x8]
-; CHECK-NEXT:    b.ge .LBB5_6
+; CHECK-NEXT:    b.ge .LBB13_6
 ; CHECK-NEXT:  // %bb.5: // %test6
 ; CHECK-NEXT:    add w9, w9, #5
 ; CHECK-NEXT:    str w9, [x8]
-; CHECK-NEXT:  .LBB5_6: // %common.ret
+; CHECK-NEXT:  .LBB13_6: // %common.ret
 ; CHECK-NEXT:    ret
   %val = load i32, i32* @var_i32
   %val2 = load i32, i32* @var2_i32


        


More information about the llvm-commits mailing list