1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00
llvm-mirror/test/CodeGen/PowerPC/inlineasm-extendedmne.ll
Jinsong Ji c7cbe2ad6b [PowerPC] Support extended mnemonics mffprwz etc.
Summary:
Reported in https://github.com/opencv/opencv/issues/15413.

We have serveral extended mnemonics for Move To/From Vector-Scalar Register Instructions
eg: mffprd,mtfprd etc.

We only support one of them, this patch add the others.

Reviewers: nemanjai, steven.zhang, hfinkel, #powerpc

Reviewed By: hfinkel

Subscribers: wuzish, qcolombet, hiraditya, kbarton, MaskRay, shchenz, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66963

llvm-svn: 370411
2019-08-29 21:53:59 +00:00

73 lines
2.2 KiB
LLVM

; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names \
; RUN: -mcpu=pwr9 -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s
define dso_local void @foo() {
; CHECK-LABEL: foo:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: #APP
; CHECK-NEXT: mfvsrd r0, vs33
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mffprd r0, f3
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mfvsrd r0, vs34
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mfvsrwz r0, vs33
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mffprwz r0, f3
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mfvsrwz r0, vs34
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mtvsrd vs33, r0
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mtfprd f3, r0
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mtvsrd vs34, r0
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mtvsrwa vs33, r0
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mtfprwa f3, r0
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mtvsrwa vs34, r0
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mtvsrwz vs33, r0
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mtfprwz f3, r0
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: #APP
; CHECK-NEXT: mtvsrwz vs34, r0
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: blr
entry:
call void asm sideeffect "mfvsrd 0,33", ""()
call void asm sideeffect "mffprd 0,3", ""()
call void asm sideeffect "mfvrd 0,2", ""()
call void asm sideeffect "mfvsrwz 0,33", ""()
call void asm sideeffect "mffprwz 0,3", ""()
call void asm sideeffect "mfvrwz 0,2", ""()
call void asm sideeffect "mtvsrd 33,0", ""()
call void asm sideeffect "mtfprd 3,0", ""()
call void asm sideeffect "mtvrd 2,0", ""()
call void asm sideeffect "mtvsrwa 33,0", ""()
call void asm sideeffect "mtfprwa 3,0", ""()
call void asm sideeffect "mtvrwa 2,0", ""()
call void asm sideeffect "mtvsrwz 33,0", ""()
call void asm sideeffect "mtfprwz 3,0", ""()
call void asm sideeffect "mtvrwz 2,0", ""()
ret void
}