[Tests] Precommit tests showing default branch padding on skylake

A follow up patch will change the default for the compiler, but not the assembler, just making sure we have testing for each in place.
This commit is contained in:
Philip Reames 2020-01-10 11:53:14 -08:00
parent 55d7b22277
commit 0c29d3ff22
2 changed files with 75 additions and 0 deletions

View File

@ -0,0 +1,37 @@
; RUN: llc -verify-machineinstrs -O3 -mcpu=skylake -filetype=obj < %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
; TODO: At the moment, autopadding for SKX102 is not the default, but
; eventually we'd like ti to be for the integrated assembler (only).
target datalayout = "e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"
define void @test(i1 %c) {
; CHECK: 0: pushq
; CHECK-NEXT: 1: movl
; CHECK-NEXT: 3: callq
; CHECK-NEXT: 8: callq
; CHECK-NEXT: d: callq
; CHECK-NEXT: 12: callq
; CHECK-NEXT: 17: callq
; TODO: want a nop here
; CHECK-NEXT: 1c: testb
; CHECK-NEXT: 1f: je
entry:
call void @foo()
call void @foo()
call void @foo()
call void @foo()
call void @foo()
br i1 %c, label %taken, label %untaken
taken:
call void @foo()
ret void
untaken:
call void @bar()
ret void
}
declare void @foo()
declare void @bar()

View File

@ -0,0 +1,38 @@
# RUN: llvm-mc -mcpu=skylake -filetype=obj < %s | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
# The textual assembler *can't* default to autopadding as there's no syntax
# to selectively disable it just yet.
# CHECK: 0: pushq
# CHECK-NEXT: 1: movl
# CHECK-NEXT: 3: callq
# CHECK-NEXT: 8: callq
# CHECK-NEXT: d: callq
# CHECK-NEXT: 12: callq
# CHECK-NEXT: 17: callq
# No NOP
# CHECK-NEXT: 1c: testb
# CHECK-NEXT: 1f: je
.text
.globl test
.p2align 4, 0x90
.type test,@function
test: # @test
# %bb.0: # %entry
pushq %rbx
movl %edi, %ebx
callq foo
callq foo
callq foo
callq foo
callq foo
testb $1, %bl
je .LBB0_2
# %bb.1: # %taken
callq foo
popq %rbx
retq
.LBB0_2: # %untaken
callq bar
popq %rbx
retq