[llvm] 624b487 - [AArch64][NFC] Pre-commit IR translator switch lowering test.

Amara Emerson via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 7 22:22:38 PST 2024


Author: Amara Emerson
Date: 2024-01-07T22:14:50-08:00
New Revision: 624b48789f6941d5f10c9ddf144e2bf72365fdd1

URL: https://github.com/llvm/llvm-project/commit/624b48789f6941d5f10c9ddf144e2bf72365fdd1
DIFF: https://github.com/llvm/llvm-project/commit/624b48789f6941d5f10c9ddf144e2bf72365fdd1.diff

LOG: [AArch64][NFC] Pre-commit IR translator switch lowering test.

Added: 
    llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-switch-split.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-switch-split.ll b/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-switch-split.ll
new file mode 100644
index 00000000000000..7dba74793644c9
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-switch-split.ll
@@ -0,0 +1,81 @@
+; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
+; RUN: llc -stop-after=irtranslator -o - %s | FileCheck %s --check-prefix=CHECK-TRANSLATOR
+
+target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
+target triple = "arm64-apple-macosx14.0.0"
+
+; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0
+
+declare i32 @logg(...)
+
+define i32 @scanfile(i32 %call148) {
+  ; CHECK-TRANSLATOR-LABEL: name: scanfile
+  ; CHECK-TRANSLATOR: bb.0.entry:
+  ; CHECK-TRANSLATOR-NEXT:   successors: %bb.1(0x40000000), %bb.4(0x40000000)
+  ; CHECK-TRANSLATOR-NEXT:   liveins: $w0, $lr
+  ; CHECK-TRANSLATOR-NEXT: {{  $}}
+  ; CHECK-TRANSLATOR-NEXT:   early-clobber $sp = frame-setup STPXpre $fp, killed $lr, $sp, -2 :: (store (s64) into %stack.1), (store (s64) into %stack.0)
+  ; CHECK-TRANSLATOR-NEXT:   frame-setup CFI_INSTRUCTION def_cfa_offset 16
+  ; CHECK-TRANSLATOR-NEXT:   frame-setup CFI_INSTRUCTION offset $w30, -8
+  ; CHECK-TRANSLATOR-NEXT:   frame-setup CFI_INSTRUCTION offset $w29, -16
+  ; CHECK-TRANSLATOR-NEXT:   dead $wzr = SUBSWri renamable $w0, 0, 0, implicit-def $nzcv
+  ; CHECK-TRANSLATOR-NEXT:   Bcc 12, %bb.4, implicit $nzcv
+  ; CHECK-TRANSLATOR-NEXT: {{  $}}
+  ; CHECK-TRANSLATOR-NEXT: bb.1.entry:
+  ; CHECK-TRANSLATOR-NEXT:   successors: %bb.4(0x55555556), %bb.2(0x2aaaaaaa)
+  ; CHECK-TRANSLATOR-NEXT:   liveins: $w0
+  ; CHECK-TRANSLATOR-NEXT: {{  $}}
+  ; CHECK-TRANSLATOR-NEXT:   CBZW renamable $w0, %bb.4
+  ; CHECK-TRANSLATOR-NEXT: {{  $}}
+  ; CHECK-TRANSLATOR-NEXT: bb.2.entry:
+  ; CHECK-TRANSLATOR-NEXT:   successors: %bb.5(0x00000000), %bb.3(0x80000000)
+  ; CHECK-TRANSLATOR-NEXT:   liveins: $w0
+  ; CHECK-TRANSLATOR-NEXT: {{  $}}
+  ; CHECK-TRANSLATOR-NEXT:   dead $wzr = ADDSWri renamable $w0, 2, 0, implicit-def $nzcv
+  ; CHECK-TRANSLATOR-NEXT:   Bcc 0, %bb.5, implicit $nzcv
+  ; CHECK-TRANSLATOR-NEXT: {{  $}}
+  ; CHECK-TRANSLATOR-NEXT: bb.3.entry:
+  ; CHECK-TRANSLATOR-NEXT:   successors: %bb.5(0x00000000), %bb.4(0x80000000)
+  ; CHECK-TRANSLATOR-NEXT:   liveins: $w0
+  ; CHECK-TRANSLATOR-NEXT: {{  $}}
+  ; CHECK-TRANSLATOR-NEXT:   dead $wzr = ADDSWri killed renamable $w0, 1, 0, implicit-def $nzcv
+  ; CHECK-TRANSLATOR-NEXT:   Bcc 0, %bb.5, implicit $nzcv
+  ; CHECK-TRANSLATOR-NEXT: {{  $}}
+  ; CHECK-TRANSLATOR-NEXT: bb.4.common.ret:
+  ; CHECK-TRANSLATOR-NEXT:   $w0 = ORRWrs $wzr, $wzr, 0
+  ; CHECK-TRANSLATOR-NEXT:   early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.1), (load (s64) from %stack.0)
+  ; CHECK-TRANSLATOR-NEXT:   RET undef $lr, implicit killed $w0
+  ; CHECK-TRANSLATOR-NEXT: {{  $}}
+  ; CHECK-TRANSLATOR-NEXT: bb.5.sw.bb150:
+  ; CHECK-TRANSLATOR-NEXT:   BL @logg, csr_darwin_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0
+  ; CHECK-TRANSLATOR-NEXT:   BRK 1
+entry:
+  switch i32 %call148, label %common.ret [
+    i32 -1, label %sw.bb
+    i32 -2, label %sw.bb150
+    i32 0, label %sw.bb152
+    i32 1, label %sw.bb178
+  ]
+
+sw.bb:                                            ; preds = %entry
+  %call149 = call i32 (...) @logg()
+  unreachable
+
+sw.bb150:                                         ; preds = %entry
+  %call151 = call i32 (...) @logg()
+  unreachable
+
+common.ret:                                       ; preds = %sw.bb178, %sw.bb152, %entry
+  ret i32 0
+
+sw.bb152:                                         ; preds = %entry
+  %tobool154.not = icmp eq i32 0, 0
+  br label %common.ret
+
+sw.bb178:                                         ; preds = %entry
+  call void @llvm.lifetime.start.p0(i64 0, ptr null)
+  br label %common.ret
+}
+
+attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }


        


More information about the llvm-commits mailing list