From 81572068ede7eb3360a1a50ba855ab2b4249cccf Mon Sep 17 00:00:00 2001 From: Roman Lebedev Date: Wed, 22 May 2019 13:04:34 +0000 Subject: [PATCH] UpdateTestChecks: sparc march handling Summary: Another target that prefers to use `-march` in tests ``` llvm/test/CodeGen/SPARC$ grep -ri mtriple | wc -l 25 llvm/test/CodeGen/SPARC$ grep -ri march | wc -l 165 ``` This test is being affected by a further patch, so regenerate it to better visualize the changes Reviewers: RKSimon, dcederman, gberry Reviewed By: RKSimon Subscribers: jyknight, fedor.sergeev, jrtc27, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62242 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361381 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/SPARC/2013-05-17-CallFrame.ll | 79 +++++++++++++++++----- utils/UpdateTestChecks/asm.py | 1 + 2 files changed, 63 insertions(+), 17 deletions(-) diff --git a/test/CodeGen/SPARC/2013-05-17-CallFrame.ll b/test/CodeGen/SPARC/2013-05-17-CallFrame.ll index ad929849ae8..1a97e4e317e 100644 --- a/test/CodeGen/SPARC/2013-05-17-CallFrame.ll +++ b/test/CodeGen/SPARC/2013-05-17-CallFrame.ll @@ -1,27 +1,72 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -march=sparc < %s | FileCheck %s --check-prefix=V8 ; RUN: llc -march=sparcv9 < %s | FileCheck %s --check-prefix=SPARC64 -; V8-LABEL: variable_alloca_with_adj_call_stack -; V8: save %sp, -96, %sp ; (this should ideally be doing "add 4+7; and -8", instead of ; "add 7; and -8; add 8"; see comments in LowerDYNAMIC_STACKALLOC) -; V8: add %i0, 7, %i0 -; V8-NEXT: and %i0, -8, %i0 -; V8-NEXT: add %i0, 8, %i0 -; V8-NEXT: sub %sp, %i0, %i0 -; V8-NEXT: add %i0, 96, %o0 -; V8: add %sp, -16, %sp -; V8: call foo -; V8: add %sp, 16, %sp - -; SPARC64-LABEL: variable_alloca_with_adj_call_stack -; SPARC64: save %sp, -128, %sp -; SPARC64: add {{.+}}, 2175, %o0 -; SPARC64: add %sp, -80, %sp -; SPARC64: call foo -; SPARC64: add %sp, 80, %sp define void @variable_alloca_with_adj_call_stack(i32 %num) { +; V8-LABEL: variable_alloca_with_adj_call_stack: +; V8: .cfi_startproc +; V8-NEXT: ! %bb.0: ! %entry +; V8-NEXT: save %sp, -96, %sp +; V8-NEXT: .cfi_def_cfa_register %fp +; V8-NEXT: .cfi_window_save +; V8-NEXT: .cfi_register 15, 31 +; V8-NEXT: add %i0, 7, %i0 +; V8-NEXT: and %i0, -8, %i0 +; V8-NEXT: add %i0, 8, %i0 +; V8-NEXT: sub %sp, %i0, %i0 +; V8-NEXT: add %i0, 96, %o0 +; V8-NEXT: mov %i0, %sp +; V8-NEXT: add %sp, -16, %sp +; V8-NEXT: st %o0, [%sp+104] +; V8-NEXT: st %o0, [%sp+100] +; V8-NEXT: st %o0, [%sp+96] +; V8-NEXT: st %o0, [%sp+92] +; V8-NEXT: mov %o0, %o1 +; V8-NEXT: mov %o0, %o2 +; V8-NEXT: mov %o0, %o3 +; V8-NEXT: mov %o0, %o4 +; V8-NEXT: call foo +; V8-NEXT: mov %o0, %o5 +; V8-NEXT: add %sp, 16, %sp +; V8-NEXT: ret +; V8-NEXT: restore +; +; SPARC64-LABEL: variable_alloca_with_adj_call_stack: +; SPARC64: .cfi_startproc +; SPARC64-NEXT: ! %bb.0: ! %entry +; SPARC64-NEXT: save %sp, -128, %sp +; SPARC64-NEXT: .cfi_def_cfa_register %fp +; SPARC64-NEXT: .cfi_window_save +; SPARC64-NEXT: .cfi_register 15, 31 +; SPARC64-NEXT: srl %i0, 0, %i0 +; SPARC64-NEXT: add %i0, 15, %i0 +; SPARC64-NEXT: sethi 4194303, %i1 +; SPARC64-NEXT: or %i1, 1008, %i1 +; SPARC64-NEXT: sethi 0, %i2 +; SPARC64-NEXT: or %i2, 1, %i2 +; SPARC64-NEXT: sllx %i2, 32, %i2 +; SPARC64-NEXT: or %i2, %i1, %i1 +; SPARC64-NEXT: and %i0, %i1, %i0 +; SPARC64-NEXT: sub %sp, %i0, %i0 +; SPARC64-NEXT: add %i0, 2175, %o0 +; SPARC64-NEXT: mov %i0, %sp +; SPARC64-NEXT: add %sp, -80, %sp +; SPARC64-NEXT: stx %o0, [%sp+2247] +; SPARC64-NEXT: stx %o0, [%sp+2239] +; SPARC64-NEXT: stx %o0, [%sp+2231] +; SPARC64-NEXT: stx %o0, [%sp+2223] +; SPARC64-NEXT: mov %o0, %o1 +; SPARC64-NEXT: mov %o0, %o2 +; SPARC64-NEXT: mov %o0, %o3 +; SPARC64-NEXT: mov %o0, %o4 +; SPARC64-NEXT: call foo +; SPARC64-NEXT: mov %o0, %o5 +; SPARC64-NEXT: add %sp, 80, %sp +; SPARC64-NEXT: ret +; SPARC64-NEXT: restore entry: %0 = alloca i8, i32 %num, align 8 call void @foo(i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0) diff --git a/utils/UpdateTestChecks/asm.py b/utils/UpdateTestChecks/asm.py index d7545b87ef1..ccc68d06f5b 100644 --- a/utils/UpdateTestChecks/asm.py +++ b/utils/UpdateTestChecks/asm.py @@ -219,6 +219,7 @@ def scrub_asm_wasm32(asm, args): def get_triple_from_march(march): triples = { 'amdgcn': 'amdgcn', + 'sparc': 'sparc', } for prefix, triple in triples.items(): if march.startswith(prefix): -- 2.40.0