You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.167
Former-commit-id: 289509151e0fee68a1b591a20c9f109c3c789d3a
This commit is contained in:
parent
e19d552987
commit
b084638f15
97
external/llvm/test/Transforms/SROA/dead-inst.ll
vendored
97
external/llvm/test/Transforms/SROA/dead-inst.ll
vendored
@ -1,97 +0,0 @@
|
||||
; SROA fails to rewrite allocs but does rewrite some phis and delete
|
||||
; dead instructions. Ensure that this invalidates analyses required
|
||||
; for other passes.
|
||||
; RUN: opt < %s -passes=bdce,sroa,bdce -o %t -debug-pass-manager 2>&1 | FileCheck %s
|
||||
; CHECK: Running pass: BDCEPass on H
|
||||
; CHECK: Running analysis: DemandedBitsAnalysis on H
|
||||
; CHECK: Running pass: SROA on H
|
||||
; CHECK: Invalidating all non-preserved analyses for: H
|
||||
; CHECK: Invalidating analysis: DemandedBitsAnalysis on H
|
||||
; CHECK: Running pass: BDCEPass on H
|
||||
; CHECK: Running analysis: DemandedBitsAnalysis on H
|
||||
; CHECK: Finished llvm::Function pass manager run.
|
||||
|
||||
target datalayout = "e-m:e-i64:64-n32:64"
|
||||
target triple = "powerpc64le-grtev4-linux-gnu"
|
||||
|
||||
%class.b = type { i64 }
|
||||
|
||||
declare void @D(%class.b* sret, %class.b* dereferenceable(32)) local_unnamed_addr
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define hidden fastcc void @H(%class.b* noalias nocapture readnone, [2 x i64]) unnamed_addr {
|
||||
%3 = alloca %class.b, align 8
|
||||
%.sroa.0 = alloca i64, align 8
|
||||
store i64 0, i64* %.sroa.0, align 8
|
||||
%4 = extractvalue [2 x i64] %1, 1
|
||||
switch i64 %4, label %6 [
|
||||
i64 4, label %foo
|
||||
i64 5, label %5
|
||||
]
|
||||
|
||||
; <label>:5:
|
||||
%.sroa.0.0..sroa_cast3 = bitcast i64* %.sroa.0 to i8**
|
||||
br label %12
|
||||
|
||||
; <label>:6:
|
||||
%7 = icmp ugt i64 %4, 5
|
||||
%.sroa.0.0..sroa_cast5 = bitcast i64* %.sroa.0 to i8**
|
||||
br i1 %7, label %8, label %12
|
||||
|
||||
; <label>:8:
|
||||
%9 = load i8, i8* inttoptr (i64 4 to i8*), align 4
|
||||
%10 = icmp eq i8 %9, 47
|
||||
%11 = select i1 %10, i64 5, i64 4
|
||||
br label %12
|
||||
|
||||
; <label>:12:
|
||||
%13 = phi i8** [ %.sroa.0.0..sroa_cast3, %5 ], [ %.sroa.0.0..sroa_cast5, %8 ], [ %.sroa.0.0..sroa_cast5, %6 ]
|
||||
%14 = phi i64 [ 4, %5 ], [ %11, %8 ], [ 4, %6 ]
|
||||
%15 = icmp ne i64 %4, 0
|
||||
%16 = icmp ugt i64 %4, %14
|
||||
%17 = and i1 %15, %16
|
||||
br i1 %17, label %18, label %a.exit
|
||||
|
||||
; <label>:18:
|
||||
%19 = tail call i8* @memchr(i8* undef, i32 signext undef, i64 undef)
|
||||
%20 = icmp eq i8* %19, null
|
||||
%21 = sext i1 %20 to i64
|
||||
br label %a.exit
|
||||
|
||||
a.exit:
|
||||
%22 = phi i64 [ -1, %12 ], [ %21, %18 ]
|
||||
%23 = load i8*, i8** %13, align 8
|
||||
%24 = sub nsw i64 %22, %14
|
||||
%25 = bitcast %class.b* %3 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %25)
|
||||
%26 = icmp ult i64 %24, 2
|
||||
br i1 %26, label %G.exit, label %27
|
||||
|
||||
; <label>:27:
|
||||
%28 = getelementptr inbounds i8, i8* %23, i64 undef
|
||||
%29 = icmp eq i8* %28, null
|
||||
br i1 %29, label %30, label %31
|
||||
|
||||
; <label>:30:
|
||||
unreachable
|
||||
|
||||
; <label>:31:
|
||||
call void @D(%class.b* nonnull sret %3, %class.b* nonnull dereferenceable(32) undef)
|
||||
br label %G.exit
|
||||
|
||||
G.exit:
|
||||
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %25)
|
||||
br label %foo
|
||||
|
||||
foo:
|
||||
ret void
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readonly
|
||||
declare i8* @memchr(i8*, i32 signext, i64) local_unnamed_addr
|
||||
|
||||
; Function Attrs: argmemonly nounwind
|
||||
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture)
|
||||
|
||||
; Function Attrs: argmemonly nounwind
|
||||
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)
|
Reference in New Issue
Block a user