Test Failure: Transforms/SLPVectorizer/X86/crash_lencod.ll

Test source: git

Log:

Source: <stdin>

----------------------------------------
define void @RCModelEstimator() denormal-fp-math=ieee,ieee {
%entry:
  br i1 undef, label %for.body.lr.ph, label %for.end.thread

%for.end.thread:
  assume i1 0

%for.body.lr.ph:
  br i1 undef, label %for.end, label %for.body

%for.body:
  br i1 undef, label %for.end, label %for.body

%for.end:
  br i1 undef, label %for.body3, label %if.end103

%for.body3:
  br i1 undef, label %if.then7, label %for.inc11

%if.then7:
  br label %for.inc11

%for.inc11:
  br i1 0, label %for.cond14.preheader, label %for.body3

%for.cond14.preheader:
  br i1 undef, label %for.body16.lr.ph, label %if.end103

%for.body16.lr.ph:
  br label %for.body16

%for.body16:
  br i1 undef, label %for.end39, label %for.body16

%for.end39:
  br i1 undef, label %if.end103, label %for.cond45.preheader

%for.cond45.preheader:
  br i1 undef, label %if.then88, label %if.else

%if.then88:
  %mul89 = fmul double 0.000000, 0.000000, exceptions=ignore
  %mul90 = fmul double 0.000000, 0.000000, exceptions=ignore
  %sub91 = fsub double %mul89, %mul90, exceptions=ignore
  %div92 = fdiv double %sub91, undef, exceptions=ignore
  %mul94 = fmul double 0.000000, 0.000000, exceptions=ignore
  %mul95 = fmul double 0.000000, 0.000000, exceptions=ignore
  %sub96 = fsub double %mul94, %mul95, exceptions=ignore
  %div97 = fdiv double %sub96, undef, exceptions=ignore
  br label %if.end103

%if.else:
  br label %if.end103

%if.end103:
  %0 = phi double [ 0.000000, %for.end39 ], [ %div97, %if.then88 ], [ 0.000000, %if.else ], [ 0.000000, %for.cond14.preheader ], [ 0.000000, %for.end ]
  %1 = phi double [ undef, %for.end39 ], [ %div92, %if.then88 ], [ undef, %if.else ], [ 0.000000, %for.cond14.preheader ], [ 0.000000, %for.end ]
  ret void
}
=>
define void @RCModelEstimator() denormal-fp-math=ieee,ieee {
%entry:
  br i1 undef, label %for.body.lr.ph, label %for.end.thread

%for.end.thread:
  assume i1 0

%for.body.lr.ph:
  br i1 undef, label %for.end, label %for.body

%for.body:
  br i1 undef, label %for.end, label %for.body

%for.end:
  br i1 undef, label %for.body3, label %if.end103

%for.body3:
  br i1 undef, label %if.then7, label %for.inc11

%if.then7:
  br label %for.inc11

%for.inc11:
  br i1 0, label %for.cond14.preheader, label %for.body3

%for.cond14.preheader:
  br i1 undef, label %for.body16.lr.ph, label %if.end103

%for.body16.lr.ph:
  br label %for.body16

%for.body16:
  br i1 undef, label %for.end39, label %for.body16

%for.end39:
  br i1 undef, label %if.end103, label %for.cond45.preheader

%for.cond45.preheader:
  br i1 undef, label %if.then88, label %if.else

%if.then88:
  br label %if.end103

%if.else:
  br label %if.end103

%if.end103:
  ret void
}
Transformation seems to be correct!


----------------------------------------
define void @intrapred_luma() denormal-fp-math=ieee,ieee {
%entry:
  %conv153 = trunc i32 undef to i16
  %arrayidx154 = gep inbounds ptr undef, 26 x i64 0, 2 x i64 12
  store i16 %conv153, ptr %arrayidx154, align 8
  %arrayidx155 = gep inbounds ptr undef, 26 x i64 0, 2 x i64 11
  store i16 %conv153, ptr %arrayidx155, align 2
  %arrayidx156 = gep inbounds ptr undef, 26 x i64 0, 2 x i64 10
  store i16 %conv153, ptr %arrayidx156, align 4
  ret void
}
=>
define void @intrapred_luma() denormal-fp-math=ieee,ieee {
%entry:
  %conv153 = trunc i32 undef to i16
  %arrayidx154 = gep inbounds ptr undef, 26 x i64 0, 2 x i64 12
  store i16 %conv153, ptr %arrayidx154, align 8
  %arrayidx155 = gep inbounds ptr undef, 26 x i64 0, 2 x i64 11
  store i16 %conv153, ptr %arrayidx155, align 2
  %arrayidx156 = gep inbounds ptr undef, 26 x i64 0, 2 x i64 10
  store i16 %conv153, ptr %arrayidx156, align 4
  ret void
}
Transformation seems to be correct! (syntactically equal)


----------------------------------------
define void @dct36(ptr %inbuf) denormal-fp-math=ieee,ieee {
%entry:
  %arrayidx41 = gep inbounds ptr %inbuf, 8 x i64 2
  %arrayidx44 = gep inbounds ptr %inbuf, 8 x i64 1
  %0 = load double, ptr %arrayidx44, align 8
  %add46 = fadd double %0, undef, exceptions=ignore
  store double %add46, ptr %arrayidx41, align 8
  %1 = load double, ptr %inbuf, align 8
  %add49 = fadd double %1, %0, exceptions=ignore
  store double %add49, ptr %arrayidx44, align 8
  ret void
}
=>
define void @dct36(ptr %inbuf) denormal-fp-math=ieee,ieee {
%entry:
  %arrayidx44 = gep inbounds ptr %inbuf, 8 x i64 1
  %0 = bitcast ptr %inbuf to ptr
  %1 = load <2 x double>, ptr %0, align 8
  %2 = shufflevector <2 x double> %1, <2 x double> poison, 1, 4294967295
  %3 = fadd <2 x double> %1, %2, exceptions=ignore
  %4 = bitcast ptr %arrayidx44 to ptr
  store <2 x double> %3, ptr %4, align 8
  ret void
}
Transformation doesn't verify!
ERROR: Mismatch in memory

Example:
ptr %inbuf = pointer(non-local, block_id=1, offset=48)

Source:
ptr %arrayidx41 = pointer(non-local, block_id=1, offset=64)
ptr %arrayidx44 = pointer(non-local, block_id=1, offset=56)
double %0 = #x0001000000000000 (0.000000000000?)
double %add46 = NaN	[based on undef value]
double %1 = #x800c000000000000 (-0.000000000000?)
double %add49 = #x800b000000000000 (-0.000000000000?)

SOURCE MEMORY STATE
===================
NON-LOCAL BLOCKS:
Block 0 >	size: 0	align: 8	alloc type: 0
Block 1 >	size: 129	align: 512	alloc type: 0

Target:
ptr %arrayidx44 = pointer(non-local, block_id=1, offset=56)
ptr %0 = pointer(non-local, block_id=1, offset=48)
<2 x double> %1 = < #x800c000000000000 (-0.000000000000?), #x0001000000000000 (0.000000000000?) >
<2 x double> %2 = < #x0001000000000000 (0.000000000000?), poison >
<2 x double> %3 = < #x800b000000000000 (-0.000000000000?), poison >
ptr %4 = pointer(non-local, block_id=1, offset=56)

Mismatch in pointer(non-local, block_id=1, offset=64)
Source value: #x7ff0000000000000
Target value: poison


------------------- SMT STATS -------------------
Num queries: 8
Num invalid: 0
Num skips:   0
Num trivial: 24 (75.0%)
Num timeout: 0 (0.0%)
Num errors:  0 (0.0%)
Num SAT:     7 (87.5%)
Num UNSAT:   1 (12.5%)
Alive2: Transform doesn't verify; aborting!

stderr:

+ : 'RUN: at line 2'
+ /home/nlopes/alive2/build/opt-alive.sh -basic-aa -slp-vectorizer -dce -S -mtriple=x86_64-apple-macosx10.8.0 -mcpu=corei7
+ /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/SLPVectorizer/X86/crash_lencod.ll

FileCheck error: '<stdin>' is empty.
FileCheck command line:  /bitbucket/nlopes/llvm/build/bin/FileCheck /bitbucket/nlopes/llvm/llvm/test/Transforms/SLPVectorizer/X86/crash_lencod.ll

 

<-- Back