daily pastebin goal
74%
SHARE
TWEET

Untitled

a guest Nov 17th, 2016 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; ModuleID = 'intrinsic_generation.c'
  2. target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  3. target triple = "x86_64-unknown-linux-gnu"
  4.  
  5. ; Function Attrs: nounwind uwtable
  6. define void @default_copy(i8* %x, i8* %y) #0 {
  7.   %1 = alloca i8*, align 8
  8.   %2 = alloca i8*, align 8
  9.   %i = alloca i32, align 4
  10.   store i8* %x, i8** %1, align 8
  11.   store i8* %y, i8** %2, align 8
  12.   store i32 0, i32* %i, align 4
  13.   br label %3
  14.  
  15. ; <label>:3                                       ; preds = %16, %0
  16.   %4 = load i32, i32* %i, align 4
  17.   %5 = icmp slt i32 %4, 64
  18.   br i1 %5, label %6, label %19
  19.  
  20. ; <label>:6                                       ; preds = %3
  21.   %7 = load i32, i32* %i, align 4
  22.   %8 = sext i32 %7 to i64
  23.   %9 = load i8*, i8** %2, align 8
  24.   %10 = getelementptr inbounds i8, i8* %9, i64 %8
  25.   %11 = load i8, i8* %10, align 1
  26.   %12 = load i32, i32* %i, align 4
  27.   %13 = sext i32 %12 to i64
  28.   %14 = load i8*, i8** %1, align 8
  29.   %15 = getelementptr inbounds i8, i8* %14, i64 %13
  30.   store i8 %11, i8* %15, align 1
  31.   br label %16
  32.  
  33. ; <label>:16                                      ; preds = %6
  34.   %17 = load i32, i32* %i, align 4
  35.   %18 = add nsw i32 %17, 1
  36.   store i32 %18, i32* %i, align 4
  37.   br label %3
  38.  
  39. ; <label>:19                                      ; preds = %3
  40.   ret void
  41. }
  42.  
  43. ; Function Attrs: nounwind uwtable
  44. define void @sse2_copy(i8* %x, i8* %y) #0 {
  45.   %1 = alloca i8*, align 8
  46.   %2 = alloca i8*, align 8
  47.   %i = alloca i32, align 4
  48.   %x_int = alloca i32, align 4
  49.   %y_int = alloca i32, align 4
  50.   %x_ = alloca <2 x i64>, align 16
  51.   %y_ = alloca <2 x i64>, align 16
  52.   store i8* %x, i8** %1, align 8
  53.   store i8* %y, i8** %2, align 8
  54.   %3 = load i8*, i8** %1, align 8
  55.   %4 = ptrtoint i8* %3 to i32
  56.   store i32 %4, i32* %x_int, align 4
  57.   %5 = load i8*, i8** %2, align 8
  58.   %6 = ptrtoint i8* %5 to i32
  59.   store i32 %6, i32* %y_int, align 4
  60.   store i32 0, i32* %i, align 4
  61.   br label %7
  62.  
  63. ; <label>:7                                       ; preds = %24, %0
  64.   %8 = load i32, i32* %i, align 4
  65.   %9 = icmp slt i32 %8, 4
  66.   br i1 %9, label %10, label %27
  67.  
  68. ; <label>:10                                      ; preds = %7
  69.   %11 = load i32, i32* %x_int, align 4
  70.   %12 = sext i32 %11 to i64
  71.   %13 = inttoptr i64 %12 to <2 x i64>*
  72.   %14 = load <2 x i64>, <2 x i64>* %13, align 16
  73.   store <2 x i64> %14, <2 x i64>* %x_, align 16
  74.   %15 = load i32, i32* %y_int, align 4
  75.   %16 = sext i32 %15 to i64
  76.   %17 = inttoptr i64 %16 to <2 x i64>*
  77.   %18 = load <2 x i64>, <2 x i64>* %17, align 16
  78.   store <2 x i64> %18, <2 x i64>* %y_, align 16
  79.   %19 = load <2 x i64>, <2 x i64>* %y_, align 16
  80.   store <2 x i64> %19, <2 x i64>* %x_, align 16
  81.   %20 = load i32, i32* %x_int, align 4
  82.   %21 = add nsw i32 %20, 16
  83.   store i32 %21, i32* %x_int, align 4
  84.   %22 = load i32, i32* %y_int, align 4
  85.   %23 = add nsw i32 %22, 16
  86.   store i32 %23, i32* %y_int, align 4
  87.   br label %24
  88.  
  89. ; <label>:24                                      ; preds = %10
  90.   %25 = load i32, i32* %i, align 4
  91.   %26 = add nsw i32 %25, 1
  92.   store i32 %26, i32* %i, align 4
  93.   br label %7
  94.  
  95. ; <label>:27                                      ; preds = %7
  96.   ret void
  97. }
  98.  
  99. ; Function Attrs: nounwind uwtable
  100. define void @avx_copy(i8* %x, i8* %y) #1 {
  101.   %1 = alloca i8*, align 8
  102.   %2 = alloca i8*, align 8
  103.   %i = alloca i32, align 4
  104.   %x_int = alloca i32, align 4
  105.   %y_int = alloca i32, align 4
  106.   %x_ = alloca <4 x i64>, align 32
  107.   %y_ = alloca <4 x i64>, align 32
  108.   store i8* %x, i8** %1, align 8
  109.   store i8* %y, i8** %2, align 8
  110.   store i32 0, i32* %i, align 4
  111.   br label %3
  112.  
  113. ; <label>:3                                       ; preds = %20, %0
  114.   %4 = load i32, i32* %i, align 4
  115.   %5 = icmp slt i32 %4, 2
  116.   br i1 %5, label %6, label %23
  117.  
  118. ; <label>:6                                       ; preds = %3
  119.   %7 = load i32, i32* %x_int, align 4
  120.   %8 = sext i32 %7 to i64
  121.   %9 = inttoptr i64 %8 to <4 x i64>*
  122.   %10 = load <4 x i64>, <4 x i64>* %9, align 32
  123.   store <4 x i64> %10, <4 x i64>* %x_, align 32
  124.   %11 = load i32, i32* %y_int, align 4
  125.   %12 = sext i32 %11 to i64
  126.   %13 = inttoptr i64 %12 to <4 x i64>*
  127.   %14 = load <4 x i64>, <4 x i64>* %13, align 32
  128.   store <4 x i64> %14, <4 x i64>* %y_, align 32
  129.   %15 = load <4 x i64>, <4 x i64>* %y_, align 32
  130.   store <4 x i64> %15, <4 x i64>* %x_, align 32
  131.   %16 = load i32, i32* %x_int, align 4
  132.   %17 = add nsw i32 %16, 32
  133.   store i32 %17, i32* %x_int, align 4
  134.   %18 = load i32, i32* %y_int, align 4
  135.   %19 = add nsw i32 %18, 32
  136.   store i32 %19, i32* %y_int, align 4
  137.   br label %20
  138.  
  139. ; <label>:20                                      ; preds = %6
  140.   %21 = load i32, i32* %i, align 4
  141.   %22 = add nsw i32 %21, 1
  142.   store i32 %22, i32* %i, align 4
  143.   br label %3
  144.  
  145. ; <label>:23                                      ; preds = %3
  146.   ret void
  147. }
  148.  
  149. 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" }
  150. 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" }
  151.  
  152. !llvm.ident = !{!0}
  153.  
  154. !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. OK, I Understand
 
Top