Files
clang-p2996/llvm/test/CodeGen/PowerPC/varargs.ll
Kai Nacke 5403c59c60 [PPC] Opaque pointer migration, part 2.
The LIT test cases were migrated with the script provided by
Nikita Popov. Due to the size of the change it is split into
several parts.

Reviewed By: nemanja, nikic

Differential Revision: https://reviews.llvm.org/D135474
2022-10-11 17:24:06 +00:00

49 lines
1.5 KiB
LLVM

; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names < %s -mtriple=powerpc-unknown-linux-gnu | FileCheck -check-prefix=P32 %s
; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names < %s -mtriple=powerpc64-unknown-linux-gnu | FileCheck -check-prefix=P64 %s
; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names < %s -mtriple=powerpc64le-unknown-linux-gnu | FileCheck -check-prefix=P64 %s
; PR8327
define ptr @test1(ptr %foo) nounwind {
; P32-LABEL: test1:
; P32: # %bb.0:
; P32-NEXT: lbz r4, 0(r3)
; P32-NEXT: lwz r5, 4(r3)
; P32-NEXT: lwz r6, 8(r3)
; P32-NEXT: addi r7, r4, 1
; P32-NEXT: stb r7, 0(r3)
; P32-NEXT: addi r7, r5, 4
; P32-NEXT: cmpwi r4, 8
; P32-NEXT: slwi r4, r4, 2
; P32-NEXT: add r4, r6, r4
; P32-NEXT: bc 12, lt, .LBB0_2
; P32-NEXT: # %bb.1:
; P32-NEXT: ori r6, r7, 0
; P32-NEXT: b .LBB0_3
; P32-NEXT: .LBB0_2:
; P32-NEXT: addi r6, r5, 0
; P32-NEXT: .LBB0_3:
; P32-NEXT: stw r6, 4(r3)
; P32-NEXT: bc 12, lt, .LBB0_5
; P32-NEXT: # %bb.4:
; P32-NEXT: ori r3, r5, 0
; P32-NEXT: b .LBB0_6
; P32-NEXT: .LBB0_5:
; P32-NEXT: addi r3, r4, 0
; P32-NEXT: .LBB0_6:
; P32-NEXT: lwz r3, 0(r3)
; P32-NEXT: blr
;
; P64-LABEL: test1:
; P64: # %bb.0:
; P64-NEXT: ld r4, 0(r3)
; P64-NEXT: addi r5, r4, 8
; P64-NEXT: std r5, 0(r3)
; P64-NEXT: ld r3, 0(r4)
; P64-NEXT: blr
%A = va_arg ptr %foo, ptr
ret ptr %A
}