mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-26 05:18:46 +00:00
[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:
parent
55d7b22277
commit
0c29d3ff22
37
llvm/test/CodeGen/X86/align-branch-boundary-default.ll
Normal file
37
llvm/test/CodeGen/X86/align-branch-boundary-default.ll
Normal 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()
|
38
llvm/test/CodeGen/X86/align-branch-boundary-default.s
Normal file
38
llvm/test/CodeGen/X86/align-branch-boundary-default.s
Normal 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
|
Loading…
x
Reference in New Issue
Block a user