[llvm-bugs] [Bug 28119] New: [AVX-512] llc crash with UNREACHABLE executed at lib/IR/ValueTypes.cpp:128
via llvm-bugs
llvm-bugs at lists.llvm.org
Mon Jun 13 22:21:02 PDT 2016
https://llvm.org/bugs/show_bug.cgi?id=28119
Bug ID: 28119
Summary: [AVX-512] llc crash with UNREACHABLE executed at
lib/IR/ValueTypes.cpp:128
Product: tools
Version: trunk
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P
Component: llc
Assignee: unassignedbugs at nondot.org
Reporter: Vsevolod.Livinskij at frtk.ru
CC: llvm-bugs at lists.llvm.org
Classification: Unclassified
Created attachment 16535
--> https://llvm.org/bugs/attachment.cgi?id=16535&action=edit
Reproducer.
llc crashes with -mcpu=knl.
Test:
> cat repr.cpp
bool a, b, d, e;
struct struct_1 {
int member_1_3 : 24;
} c;
void fn1() {
if (a)
;
else {
b = c.member_1_3 << bool(c.member_1_3) + e;
d = c.member_1_3 << a - 4294967293;
}
}
> clang++ -S -emit-llvm repr.cpp -march=knl
> cat repr.ll
; ModuleID = 'repr.cpp'
source_filename = "repr.cpp"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%struct.struct_1 = type { i24 }
@a = global i8 0, align 1
@b = global i8 0, align 1
@d = global i8 0, align 1
@e = global i8 0, align 1
@c = global %struct.struct_1 zeroinitializer, align 4
; Function Attrs: nounwind uwtable
define void @_Z3fn1v() #0 {
entry:
%0 = load i8, i8* @a, align 1
%tobool = trunc i8 %0 to i1
br i1 %tobool, label %if.then, label %if.else
if.then: ; preds = %entry
br label %if.end
if.else: ; preds = %entry
%bf.load = load i32, i32* bitcast (%struct.struct_1* @c to i32*), align 4
%bf.shl = shl i32 %bf.load, 8
%bf.ashr = ashr i32 %bf.shl, 8
%bf.load1 = load i32, i32* bitcast (%struct.struct_1* @c to i32*), align 4
%bf.shl2 = shl i32 %bf.load1, 8
%bf.ashr3 = ashr i32 %bf.shl2, 8
%tobool4 = icmp ne i32 %bf.ashr3, 0
%conv = zext i1 %tobool4 to i32
%1 = load i8, i8* @e, align 1
%tobool5 = trunc i8 %1 to i1
%conv6 = zext i1 %tobool5 to i32
%add = add nsw i32 %conv, %conv6
%shl = shl i32 %bf.ashr, %add
%tobool7 = icmp ne i32 %shl, 0
%frombool = zext i1 %tobool7 to i8
store i8 %frombool, i8* @b, align 1
%bf.load8 = load i32, i32* bitcast (%struct.struct_1* @c to i32*), align 4
%bf.shl9 = shl i32 %bf.load8, 8
%bf.ashr10 = ashr i32 %bf.shl9, 8
%2 = load i8, i8* @a, align 1
%tobool11 = trunc i8 %2 to i1
%conv12 = zext i1 %tobool11 to i64
%sub = sub nsw i64 %conv12, 4294967293
%sh_prom = trunc i64 %sub to i32
%shl13 = shl i32 %bf.ashr10, %sh_prom
%tobool14 = icmp ne i32 %shl13, 0
%frombool15 = zext i1 %tobool14 to i8
store i8 %frombool15, i8* @d, align 1
br label %if.end
if.end: ; preds = %if.else, %if.then
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-jump-tables"="false" "no-nans-fp-math"="false"
"stack-protector-buffer-size"="8" "target-cpu"="knl"
"target-features"="+adx,+aes,+avx,+avx2,+avx512cd,+avx512er,+avx512f,+avx512pf,+bmi,+bmi2,+cx16,+f16c,+fma,+fsgsbase,+fxsr,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+prefetchwt1,+rdrnd,+rdseed,+rtm,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt"
"unsafe-fp-math"="false" "use-soft-float"="false" }
!llvm.ident = !{!0}
!0 = !{!"clang version 3.9.0 (trunk 272396)"}
> llc -mcpu=knl func.ll
Overran sorted position:
t7232: Invalid EVT!
UNREACHABLE executed at
/export/users/vlivinsk/llvm/llvm-trunk/lib/IR/ValueTypes.cpp:128!
#0 0x0000000001003b45 (llc+0x1003b45)
#1 0x00000000010017e6 (llc+0x10017e6)
#2 0x0000000001001a02 (llc+0x1001a02)
#3 0x00007fa966d17430 __restore_rt (/lib64/libpthread.so.0+0x10430)
#4 0x00007fa965ec49c8 __GI_raise (/lib64/libc.so.6+0x349c8)
#5 0x00007fa965ec665a __GI_abort (/lib64/libc.so.6+0x3665a)
#6 0x0000000000fbbdc0 (llc+0xfbbdc0)
#7 0x0000000000c860b7 (llc+0xc860b7)
#8 0x0000000000ecb9bc (llc+0xecb9bc)
#9 0x0000000000ecede0 (llc+0xecede0)
#10 0x0000000000ecf62e (llc+0xecf62e)
#11 0x0000000000ecfd53 (llc+0xecfd53)
#12 0x0000000000ea35a6 (llc+0xea35a6)
#13 0x0000000000ed23ac (llc+0xed23ac)
#14 0x0000000000ed663b (llc+0xed663b)
#15 0x0000000000edfb55 (llc+0xedfb55)
#16 0x0000000000ee1ff0 (llc+0xee1ff0)
#17 0x0000000000652c44 (llc+0x652c44)
#18 0x00000000009d46c5 (llc+0x9d46c5)
#19 0x0000000000c47ee3 (llc+0xc47ee3)
#20 0x0000000000c482bb (llc+0xc482bb)
#21 0x0000000000c47a2a (llc+0xc47a2a)
#22 0x000000000057fd6f (llc+0x57fd6f)
#23 0x00000000005567a0 (llc+0x5567a0)
#24 0x00007fa965eb0700 __libc_start_main (/lib64/libc.so.6+0x20700)
#25 0x0000000000575d79 (llc+0x575d79)
Stack dump:
0. Program arguments: llc -mcpu=knl func.ll
1. Running pass 'Function Pass Manager' on module 'func.ll'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function
'@_Z3fn1v'
Aborted (core dumped)
LLVM version:
> clang++ -v
clang version 3.9.0 (trunk 272396)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /export/users/vlivinsk/llvm/bin-trunk/bin
Found candidate GCC installation: /usr/lib/gcc/i686-redhat-linux/5.1.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/5.1.1
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/5.1.1
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160614/e35fcaac/attachment-0001.html>
More information about the llvm-bugs
mailing list