SHARE
TWEET
Untitled
a guest
Nov 17th, 2016
81
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
- ; ModuleID = 'intrinsic_generation.c'
- target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
- target triple = "x86_64-unknown-linux-gnu"
- ; Function Attrs: nounwind uwtable
- define void @default_copy(i8* %x, i8* %y) #0 {
- %1 = alloca i8*, align 8
- %2 = alloca i8*, align 8
- %i = alloca i32, align 4
- store i8* %x, i8** %1, align 8
- store i8* %y, i8** %2, align 8
- store i32 0, i32* %i, align 4
- br label %3
- ; <label>:3 ; preds = %16, %0
- %4 = load i32, i32* %i, align 4
- %5 = icmp slt i32 %4, 64
- br i1 %5, label %6, label %19
- ; <label>:6 ; preds = %3
- %7 = load i32, i32* %i, align 4
- %8 = sext i32 %7 to i64
- %9 = load i8*, i8** %2, align 8
- %10 = getelementptr inbounds i8, i8* %9, i64 %8
- %11 = load i8, i8* %10, align 1
- %12 = load i32, i32* %i, align 4
- %13 = sext i32 %12 to i64
- %14 = load i8*, i8** %1, align 8
- %15 = getelementptr inbounds i8, i8* %14, i64 %13
- store i8 %11, i8* %15, align 1
- br label %16
- ; <label>:16 ; preds = %6
- %17 = load i32, i32* %i, align 4
- %18 = add nsw i32 %17, 1
- store i32 %18, i32* %i, align 4
- br label %3
- ; <label>:19 ; preds = %3
- ret void
- }
- ; Function Attrs: nounwind uwtable
- define void @sse2_copy(i8* %x, i8* %y) #0 {
- %1 = alloca i8*, align 8
- %2 = alloca i8*, align 8
- %i = alloca i32, align 4
- %x_int = alloca i32, align 4
- %y_int = alloca i32, align 4
- %x_ = alloca <2 x i64>, align 16
- %y_ = alloca <2 x i64>, align 16
- store i8* %x, i8** %1, align 8
- store i8* %y, i8** %2, align 8
- %3 = load i8*, i8** %1, align 8
- %4 = ptrtoint i8* %3 to i32
- store i32 %4, i32* %x_int, align 4
- %5 = load i8*, i8** %2, align 8
- %6 = ptrtoint i8* %5 to i32
- store i32 %6, i32* %y_int, align 4
- store i32 0, i32* %i, align 4
- br label %7
- ; <label>:7 ; preds = %24, %0
- %8 = load i32, i32* %i, align 4
- %9 = icmp slt i32 %8, 4
- br i1 %9, label %10, label %27
- ; <label>:10 ; preds = %7
- %11 = load i32, i32* %x_int, align 4
- %12 = sext i32 %11 to i64
- %13 = inttoptr i64 %12 to <2 x i64>*
- %14 = load <2 x i64>, <2 x i64>* %13, align 16
- store <2 x i64> %14, <2 x i64>* %x_, align 16
- %15 = load i32, i32* %y_int, align 4
- %16 = sext i32 %15 to i64
- %17 = inttoptr i64 %16 to <2 x i64>*
- %18 = load <2 x i64>, <2 x i64>* %17, align 16
- store <2 x i64> %18, <2 x i64>* %y_, align 16
- %19 = load <2 x i64>, <2 x i64>* %y_, align 16
- store <2 x i64> %19, <2 x i64>* %x_, align 16
- %20 = load i32, i32* %x_int, align 4
- %21 = add nsw i32 %20, 16
- store i32 %21, i32* %x_int, align 4
- %22 = load i32, i32* %y_int, align 4
- %23 = add nsw i32 %22, 16
- store i32 %23, i32* %y_int, align 4
- br label %24
- ; <label>:24 ; preds = %10
- %25 = load i32, i32* %i, align 4
- %26 = add nsw i32 %25, 1
- store i32 %26, i32* %i, align 4
- br label %7
- ; <label>:27 ; preds = %7
- ret void
- }
- ; Function Attrs: nounwind uwtable
- define void @avx_copy(i8* %x, i8* %y) #1 {
- %1 = alloca i8*, align 8
- %2 = alloca i8*, align 8
- %i = alloca i32, align 4
- %x_int = alloca i32, align 4
- %y_int = alloca i32, align 4
- %x_ = alloca <4 x i64>, align 32
- %y_ = alloca <4 x i64>, align 32
- store i8* %x, i8** %1, align 8
- store i8* %y, i8** %2, align 8
- store i32 0, i32* %i, align 4
- br label %3
- ; <label>:3 ; preds = %20, %0
- %4 = load i32, i32* %i, align 4
- %5 = icmp slt i32 %4, 2
- br i1 %5, label %6, label %23
- ; <label>:6 ; preds = %3
- %7 = load i32, i32* %x_int, align 4
- %8 = sext i32 %7 to i64
- %9 = inttoptr i64 %8 to <4 x i64>*
- %10 = load <4 x i64>, <4 x i64>* %9, align 32
- store <4 x i64> %10, <4 x i64>* %x_, align 32
- %11 = load i32, i32* %y_int, align 4
- %12 = sext i32 %11 to i64
- %13 = inttoptr i64 %12 to <4 x i64>*
- %14 = load <4 x i64>, <4 x i64>* %13, align 32
- store <4 x i64> %14, <4 x i64>* %y_, align 32
- %15 = load <4 x i64>, <4 x i64>* %y_, align 32
- store <4 x i64> %15, <4 x i64>* %x_, align 32
- %16 = load i32, i32* %x_int, align 4
- %17 = add nsw i32 %16, 32
- store i32 %17, i32* %x_int, align 4
- %18 = load i32, i32* %y_int, align 4
- %19 = add nsw i32 %18, 32
- store i32 %19, i32* %y_int, align 4
- br label %20
- ; <label>:20 ; preds = %6
- %21 = load i32, i32* %i, align 4
- %22 = add nsw i32 %21, 1
- store i32 %22, i32* %i, align 4
- br label %3
- ; <label>:23 ; preds = %3
- ret void
- }
- attributes #0 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
- attributes #1 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+xsave" "unsafe-fp-math"="false" "use-soft-float"="false" }
- !llvm.ident = !{!0}
- !0 = !{!"clang version 3.8.0 (tags/RELEASE_380/final)"}
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.
