mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-25 14:32:53 +00:00
c5992119fc
Allow unaligned 16-byte memop codegen for btver2. No functional changes for any other subtargets. Replace the existing supposed small memcpy test with an actual test of a small memcpy. The previous test wasn't using FileCheck either. This patch should allow us to close PR21541 ( http://llvm.org/bugs/show_bug.cgi?id=21541 ). Differential Revision: http://reviews.llvm.org/D6360 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222925 91177308-0d34-0410-b5e6-96231b3b80d8
26 lines
810 B
LLVM
26 lines
810 B
LLVM
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core2 | FileCheck %s --check-prefix=CORE2
|
|
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=nehalem | FileCheck %s --check-prefix=NEHALEM
|
|
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=btver2 | FileCheck %s --check-prefix=BTVER2
|
|
|
|
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1)
|
|
|
|
define void @copy16bytes(i8* nocapture %a, i8* nocapture readonly %b) {
|
|
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %a, i8* %b, i64 16, i32 1, i1 false)
|
|
ret void
|
|
|
|
; CHECK-LABEL: copy16bytes
|
|
; CORE2: movq
|
|
; CORE2-NEXT: movq
|
|
; CORE2-NEXT: movq
|
|
; CORE2-NEXT: movq
|
|
; CORE2-NEXT: retq
|
|
|
|
; NEHALEM: movups
|
|
; NEHALEM-NEXT: movups
|
|
; NEHALEM-NEXT: retq
|
|
|
|
; BTVER2: movups
|
|
; BTVER2-NEXT: movups
|
|
; BTVER2-NEXT: retq
|
|
}
|