[llvm] 4de0c40 - [NFC][ARM] Fix update_llc_test_checks for armv7-apple-ios, autogenerate ifcvt5.ll/ifcvt6.ll

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 23 06:34:43 PDT 2021


Author: Roman Lebedev
Date: 2021-06-23T16:31:19+03:00
New Revision: 4de0c400317e5a92d57f2c76545061a9e7de22f8

URL: https://github.com/llvm/llvm-project/commit/4de0c400317e5a92d57f2c76545061a9e7de22f8
DIFF: https://github.com/llvm/llvm-project/commit/4de0c400317e5a92d57f2c76545061a9e7de22f8.diff

LOG: [NFC][ARM] Fix update_llc_test_checks for armv7-apple-ios, autogenerate ifcvt5.ll/ifcvt6.ll

Added: 
    

Modified: 
    llvm/test/CodeGen/ARM/ifcvt5.ll
    llvm/test/CodeGen/ARM/ifcvt6.ll
    llvm/utils/UpdateTestChecks/asm.py

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/ARM/ifcvt5.ll b/llvm/test/CodeGen/ARM/ifcvt5.ll
index 20df7cef9bade..dff64959827dc 100644
--- a/llvm/test/CodeGen/ARM/ifcvt5.ll
+++ b/llvm/test/CodeGen/ARM/ifcvt5.ll
@@ -1,3 +1,4 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 ; RUN: llc < %s -mtriple=armv7-apple-ios -mcpu=cortex-a8 | FileCheck %s -check-prefix=A8
 ; RUN: llc < %s -mtriple=armv7-apple-ios -mcpu=swift     | FileCheck %s -check-prefix=SWIFT
 ; rdar://8402126
@@ -5,6 +6,25 @@
 @x = external global i32*		; <i32**> [#uses=1]
 
 define void @foo(i32 %a) "frame-pointer"="all" {
+; A8-LABEL: foo:
+; A8:       @ %bb.0: @ %entry
+; A8-NEXT:    movw r1, :lower16:(L_x$non_lazy_ptr-(LPC0_0+8))
+; A8-NEXT:    movt r1, :upper16:(L_x$non_lazy_ptr-(LPC0_0+8))
+; A8-NEXT:  LPC0_0:
+; A8-NEXT:    ldr r1, [pc, r1]
+; A8-NEXT:    ldr r1, [r1]
+; A8-NEXT:    str r0, [r1]
+; A8-NEXT:    bx lr
+;
+; SWIFT-LABEL: foo:
+; SWIFT:       @ %bb.0: @ %entry
+; SWIFT-NEXT:    movw r1, :lower16:(L_x$non_lazy_ptr-(LPC0_0+8))
+; SWIFT-NEXT:    movt r1, :upper16:(L_x$non_lazy_ptr-(LPC0_0+8))
+; SWIFT-NEXT:  LPC0_0:
+; SWIFT-NEXT:    ldr r1, [pc, r1]
+; SWIFT-NEXT:    ldr r1, [r1]
+; SWIFT-NEXT:    str r0, [r1]
+; SWIFT-NEXT:    bx lr
 entry:
 	%tmp = load i32*, i32** @x		; <i32*> [#uses=1]
 	store i32 %a, i32* %tmp
@@ -13,11 +33,30 @@ entry:
 
 define i32 @t1(i32 %a, i32 %b) "frame-pointer"="all" {
 ; A8-LABEL: t1:
-; A8: bxlt lr
-
+; A8:       @ %bb.0: @ %entry
+; A8-NEXT:    cmp r0, #11
+; A8-NEXT:    movlt r0, #1
+; A8-NEXT:    bxlt lr
+; A8-NEXT:  LBB1_1: @ %cond_true
+; A8-NEXT:    push {r7, lr}
+; A8-NEXT:    mov r7, sp
+; A8-NEXT:    mov r0, r1
+; A8-NEXT:    bl _foo
+; A8-NEXT:    mov r0, #0
+; A8-NEXT:    pop {r7, pc}
+;
 ; SWIFT-LABEL: t1:
-; SWIFT: bxlt lr
-; SWIFT: pop {r7, pc}
+; SWIFT:       @ %bb.0: @ %entry
+; SWIFT-NEXT:    cmp r0, #11
+; SWIFT-NEXT:    movlt r0, #1
+; SWIFT-NEXT:    bxlt lr
+; SWIFT-NEXT:  LBB1_1: @ %cond_true
+; SWIFT-NEXT:    push {r7, lr}
+; SWIFT-NEXT:    mov r7, sp
+; SWIFT-NEXT:    mov r0, r1
+; SWIFT-NEXT:    bl _foo
+; SWIFT-NEXT:    mov r0, #0
+; SWIFT-NEXT:    pop {r7, pc}
 entry:
 	%tmp1 = icmp sgt i32 %a, 10		; <i1> [#uses=1]
 	br i1 %tmp1, label %cond_true, label %UnifiedReturnBlock

diff  --git a/llvm/test/CodeGen/ARM/ifcvt6.ll b/llvm/test/CodeGen/ARM/ifcvt6.ll
index 668069751cf1b..d65c9f5cfafac 100644
--- a/llvm/test/CodeGen/ARM/ifcvt6.ll
+++ b/llvm/test/CodeGen/ARM/ifcvt6.ll
@@ -1,9 +1,18 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 ; RUN: llc < %s -mtriple=armv7-apple-ios | FileCheck %s
 
 define void @foo(i32 %X, i32 %Y) {
+; CHECK-LABEL: foo:
+; CHECK:       @ %bb.0: @ %entry
+; CHECK-NEXT:    cmp r1, #0
+; CHECK-NEXT:    cmpne r0, #3
+; CHECK-NEXT:    bxhi lr
+; CHECK-NEXT:  LBB0_1: @ %cond_true
+; CHECK-NEXT:    push {lr}
+; CHECK-NEXT:    bl _bar
+; CHECK-NEXT:    pop {lr}
+; CHECK-NEXT:    bx lr
 entry:
-; CHECK: cmpne
-; CHECK: bxhi lr
 	%tmp1 = icmp ult i32 %X, 4		; <i1> [#uses=1]
 	%tmp4 = icmp eq i32 %Y, 0		; <i1> [#uses=1]
 	%tmp7 = or i1 %tmp4, %tmp1		; <i1> [#uses=1]

diff  --git a/llvm/utils/UpdateTestChecks/asm.py b/llvm/utils/UpdateTestChecks/asm.py
index c29d3ac7ae6da..7a10417d2fe3e 100644
--- a/llvm/utils/UpdateTestChecks/asm.py
+++ b/llvm/utils/UpdateTestChecks/asm.py
@@ -142,6 +142,12 @@ class string:
      flags=(re.M | re.S))
 
 ASM_FUNCTION_ARM_IOS_RE = re.compile(
+     r'^_(?P<func>[^:]+):\n'
+     r'(?P<body>.*?)'
+     r'^[ \t]*@[ \t]--[ \t]End[ \t]function',
+     flags=(re.M | re.S))
+
+ASM_FUNCTION_THUMB_IOS_RE = re.compile(
      r'^_(?P<func>[^:]+):[ \t]*\n'
      r'^Lfunc_begin(?P<id>[0-9][1-9]*):\n'
      r'(?P<body>.*?)'
@@ -376,7 +382,7 @@ def get_run_handler(triple):
       'thumb': (scrub_asm_arm_eabi, ASM_FUNCTION_ARM_RE),
       'thumb-macho': (scrub_asm_arm_eabi, ASM_FUNCTION_ARM_MACHO_RE),
       'thumbv5-macho': (scrub_asm_arm_eabi, ASM_FUNCTION_ARM_MACHO_RE),
-      'thumbv7-apple-ios' : (scrub_asm_arm_eabi, ASM_FUNCTION_ARM_IOS_RE),
+      'thumbv7-apple-ios' : (scrub_asm_arm_eabi, ASM_FUNCTION_THUMB_IOS_RE),
       'm68k': (scrub_asm_m68k, ASM_FUNCTION_M68K_RE),
       'mips': (scrub_asm_mips, ASM_FUNCTION_MIPS_RE),
       'msp430': (scrub_asm_msp430, ASM_FUNCTION_MSP430_RE),


        


More information about the llvm-commits mailing list