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.8 KiB
LLVM

target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32:64"
target triple = "powerpc64-unknown-linux-gnu"
; RUN: llc -verify-machineinstrs < %s | FileCheck %s
@multvec_i = external unnamed_addr global [100 x i32], align 4
define fastcc void @subs_STMultiExceptIntern(i32 %input) nounwind {
entry:
br i1 undef, label %while.body.lr.ph, label %return
while.body.lr.ph: ; preds = %entry
br label %while.body
while.body: ; preds = %if.end12, %while.body.lr.ph
%i.0240 = phi i32 [ -1, %while.body.lr.ph ], [ %i.1, %if.end12 ]
br i1 undef, label %if.end12, label %if.then
if.then: ; preds = %while.body
%0 = add i32 %input, 1
br label %if.end12
if.end12: ; preds = %if.then, %while.body
%i.1 = phi i32 [ %i.0240, %while.body ], [ %0, %if.then ]
br i1 undef, label %while.body, label %while.end
while.end: ; preds = %if.end12
br i1 undef, label %return, label %if.end15
if.end15: ; preds = %while.end
%idxprom.i.i230 = sext i32 %i.1 to i64
%arrayidx18 = getelementptr inbounds [100 x i32], ptr @multvec_i, i64 0, i64 %idxprom.i.i230
store i32 0, ptr %arrayidx18, align 4
br i1 undef, label %while.body21, label %while.end90
while.body21: ; preds = %if.end15
unreachable
while.end90: ; preds = %if.end15
store i32 0, ptr %arrayidx18, align 4
br label %return
return: ; preds = %while.end90, %while.end, %entry
ret void
; CHECK: @subs_STMultiExceptIntern
; CHECK: stwux
}