~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/Transforms/BBVectorize/X86/pr15289.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: opt < %s -basicaa -bb-vectorize -disable-output
 
2
; This is a bugpoint-reduced test case. It did not always assert, but does reproduce the bug
 
3
; and running under valgrind (or some similar tool) will catch the error.
 
4
 
 
5
target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 
6
target triple = "x86_64-apple-darwin12.2.0"
 
7
 
 
8
%0 = type { [10 x { float, float }], [10 x { float, float }], [10 x { float, float }], [10 x { float, float }], [10 x { float, float }] }
 
9
%1 = type { [10 x [8 x i8]] }
 
10
%2 = type { i64, i64 }
 
11
%3 = type { [10 x i64], i64, i64, i64, i64, i64 }
 
12
%4 = type { i64, i64, i64, i64, i64, i64 }
 
13
%5 = type { [10 x i64] }
 
14
%6 = type { [10 x float], [10 x float], [10 x float], [10 x float] }
 
15
%struct.__st_parameter_dt.1.3.5.7 = type { %struct.__st_parameter_common.0.2.4.6, i64, i64*, i64*, i8*, i8*, i32, i32, i8*, i8*, i32, i32, i8*, [256 x i8], i32*, i64, i8*, i32, i32, i8*, i8*, i32, i32, i8*, i8*, i32, i32, i8*, i8*, i32, [4 x i8] }
 
16
%struct.__st_parameter_common.0.2.4.6 = type { i32, i32, i8*, i32, i32, i8*, i32* }
 
17
 
 
18
@cctenso_ = external unnamed_addr global %0, align 32
 
19
@ctenso_ = external unnamed_addr global %1, align 32
 
20
@i_dim_ = external unnamed_addr global %2, align 16
 
21
@itenso1_ = external unnamed_addr global %3, align 32
 
22
@itenso2_ = external unnamed_addr global %4, align 32
 
23
@ltenso_ = external unnamed_addr global %5, align 32
 
24
@rtenso_ = external unnamed_addr global %6, align 32
 
25
@.cst = external unnamed_addr constant [8 x i8], align 8
 
26
@.cst1 = external unnamed_addr constant [3 x i8], align 8
 
27
@.cst2 = external unnamed_addr constant [29 x i8], align 8
 
28
@.cst3 = external unnamed_addr constant [32 x i8], align 64
 
29
 
 
30
define void @cart_to_dc2y_(double* noalias nocapture %xx, double* noalias nocapture %yy, double* noalias nocapture %zz, [5 x { double, double }]* noalias nocapture %c2ten) nounwind uwtable {
 
31
entry:
 
32
  %0 = fmul double undef, undef
 
33
  %1 = fmul double undef, undef
 
34
  %2 = fadd double undef, undef
 
35
  %3 = fmul double undef, 0x3FE8B8B76E3E9919
 
36
  %4 = fsub double %0, %1
 
37
  %5 = fsub double -0.000000e+00, undef
 
38
  %6 = fmul double undef, undef
 
39
  %7 = fmul double %4, %6
 
40
  %8 = fmul double undef, 2.000000e+00
 
41
  %9 = fmul double %8, undef
 
42
  %10 = fmul double undef, %9
 
43
  %11 = fmul double %10, undef
 
44
  %12 = fsub double undef, %7
 
45
  %13 = fmul double %3, %12
 
46
  %14 = fmul double %3, undef
 
47
  %15 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 0, i32 0
 
48
  store double %13, double* %15, align 8
 
49
  %16 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 0, i32 1
 
50
  %17 = fmul double undef, %8
 
51
  %18 = fmul double %17, undef
 
52
  %19 = fmul double undef, %18
 
53
  %20 = fadd double undef, undef
 
54
  %21 = fmul double %3, %19
 
55
  %22 = fsub double -0.000000e+00, %21
 
56
  %23 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 1, i32 0
 
57
  store double %22, double* %23, align 8
 
58
  %24 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 1, i32 1
 
59
  %25 = fmul double undef, 0x3FE42F601A8C6794
 
60
  %26 = fmul double undef, 2.000000e+00
 
61
  %27 = fsub double %26, %0
 
62
  %28 = fmul double %6, undef
 
63
  %29 = fsub double undef, %28
 
64
  %30 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 2, i32 0
 
65
  store double undef, double* %30, align 8
 
66
  %31 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 2, i32 1
 
67
  %32 = fmul double undef, %17
 
68
  %33 = fmul double undef, %17
 
69
  %34 = fmul double undef, %32
 
70
  %35 = fmul double undef, %33
 
71
  %36 = fsub double undef, %35
 
72
  %37 = fmul double %3, %34
 
73
  %38 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 3, i32 0
 
74
  store double %37, double* %38, align 8
 
75
  %39 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 3, i32 1
 
76
  %40 = fmul double undef, %8
 
77
  %41 = fmul double undef, %40
 
78
  %42 = fmul double undef, %41
 
79
  %43 = fsub double undef, %42
 
80
  %44 = fmul double %3, %43
 
81
  %45 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 4, i32 0
 
82
  store double %13, double* %45, align 8
 
83
  %46 = getelementptr inbounds [5 x { double, double }], [5 x { double, double }]* %c2ten, i64 0, i64 4, i32 1
 
84
  %47 = fsub double -0.000000e+00, %14
 
85
  store double %47, double* %16, align 8
 
86
  store double undef, double* %24, align 8
 
87
  store double -0.000000e+00, double* %31, align 8
 
88
  store double undef, double* %39, align 8
 
89
  store double undef, double* %46, align 8
 
90
  ret void
 
91
}
 
92
 
 
93
attributes #0 = { nounwind uwtable }
 
94
attributes #1 = { nounwind readnone }
 
95
attributes #2 = { nounwind }