1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/test/CodeGen/PowerPC/aix-cc-altivec.ll
Zarko Todorovski 2b76ff086c [AIX] Add support for non var_arg extended vector ABI calling convention on AIX
This patch enables passing non variadic vector type parameters on the caller and callee side and vector return on AIX that are passed in vector registers only.

So far, support is enabled for only the AIX extended Altivec ABI Calling convention.

Reviewed By: sfertile, DiggerLin

Differential Revision: https://reviews.llvm.org/D86476
2020-11-26 12:03:51 -05:00

30 lines
749 B
LLVM

; RUN: llc < %s -mtriple powerpc64-ibm-aix-xcoff -vec-extabi -mcpu=pwr8 2>&1
; | FileCheck %s --check-prefix=ASM64
; RUN: llc < %s -mtriple powerpc-ibm-aix-xcoff -vec-extabi -mcpu=pwr8 2>&1
; | FileCheck %s --check-prefix=ASM32
@f1 = global float 0.000000e+00, align 4
define void @call_test_vararg() {
entry:
%0 = load float, float* @f1, align 4
%conv = fpext float %0 to double
call void (i32, ...) @test_vararg(i32 42, double %conv, float %0)
ret void
}
declare void @test_vararg(i32, ...)
; ASM64: xscvdpspn
; ASM64: mffprd
; ASM64: xxsldwi
; ASM64: mffprwz
; ASM32: lfsx
; ASM32: fmr
; ASM32: stfs
; ASM32: lwz
; ASM32: stfd