-
-
Save eddyb/fe83320e85743e69eace87fe1b6ccb65 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; *** You can reproduce the problem with: opt bugpoint-reduced-simplified.bc -sroa | |
; ModuleID = 'bugpoint-reduced-simplified.bc' | |
source_filename = "bugpoint-output-1d9ce6e.bc" | |
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-unknown-linux-gnu" | |
%Array = type { [8192 x i8] } | |
%CharArrayPair = type { i8, %Array } | |
%Either = type { [8194 x i8] } | |
; Function Attrs: noinline nounwind uwtable | |
define void @foo() unnamed_addr #0 { | |
start: | |
%_9 = alloca %Array, align 1 | |
%_8 = alloca %Array, align 1 | |
%array = alloca %Array, align 1 | |
%_2 = alloca %CharArrayPair, align 1 | |
%either = alloca %Either, align 1 | |
%0 = bitcast %Either* %either to %CharArrayPair* | |
%1 = bitcast %CharArrayPair* %_2 to i8* | |
%2 = bitcast %CharArrayPair* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %1, i64 8193, i32 1, i1 false) | |
%3 = bitcast %Either* %either to %CharArrayPair* | |
%4 = bitcast %CharArrayPair* %3 to i8* | |
%5 = load i8, i8* %4 | |
br i1 undef, label %bb1, label %bb2 | |
bb1: ; preds = %start | |
%6 = bitcast %Either* %either to %CharArrayPair* | |
%7 = getelementptr inbounds %CharArrayPair, %CharArrayPair* %6, i32 0, i32 1 | |
%8 = bitcast %Array* %7 to i8* | |
%9 = bitcast %Array* %_8 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %8, i64 8192, i32 1, i1 false) | |
%10 = bitcast %Array* %_8 to i8* | |
%11 = bitcast %Array* %array to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %10, i64 8192, i32 1, i1 false) | |
ret void | |
bb2: ; preds = %start | |
%12 = bitcast %Either* %either to %Array* | |
%13 = bitcast %Array* %12 to i8* | |
%14 = bitcast %Array* %_9 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %13, i64 8192, i32 1, i1 false) | |
%15 = bitcast %Array* %_9 to i8* | |
%16 = bitcast %Array* %array to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %16, i8* %15, i64 8192, i32 1, i1 false) | |
unreachable | |
} | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #1 | |
attributes #0 = { noinline nounwind uwtable } | |
attributes #1 = { argmemonly nounwind } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment