- Notifications
You must be signed in to change notification settings - Fork 15.3k
Closed
Labels
llvm:hangCompiler hang (infinite loop)Compiler hang (infinite loop)llvm:instcombineCovers the InstCombine, InstSimplify and AggressiveInstCombine passesCovers the InstCombine, InstSimplify and AggressiveInstCombine passes
Description
Reduced test case: https://godbolt.org/z/ds9eq96db
define i16 @func(i16 noundef %p_12) { entry: %cmp1 = icmp ult i16 %p_12, 2 %and1 = and i16 %p_12, 1 %and2 = select i1 %cmp1, i16 %and1, i16 0 %cmp2 = icmp eq i16 %and2, %p_12 %and3 = select i1 %cmp2, i16 %and1, i16 0 ret i16 %and3 } ADD: %and3 = select i1 %cmp2, i16 %and2, i16 0 ADD: %and2 = select i1 %cmp1, i16 %and1, i16 0 ADD: %and1 = and i16 %p_12, 1 IC: Visiting: %and1 = and i16 %p_12, 1 IC: Visiting: %and2 = select i1 %cmp1, i16 %and1, i16 0 IC: Visiting: %and3 = select i1 %cmp2, i16 %and2, i16 0 ADD DEFERRED: %and2 = select i1 %cmp1, i16 %and1, i16 0 ADD DEFERRED: %cmp2 = icmp eq i16 %and2, %p_12 IC: Mod = %and3 = select i1 %cmp2, i16 %and2, i16 0 New = %and3 = select i1 %cmp2, i16 %and1, i16 0 ADD: %and3 = select i1 %cmp2, i16 %and1, i16 0 ADD: %cmp2 = icmp eq i16 %and2, %p_12 ADD: %and2 = select i1 %cmp1, i16 %and1, i16 0 IC: Visiting: %and2 = select i1 %cmp1, i16 %and1, i16 0 IC: Visiting: %cmp2 = icmp eq i16 %and2, %p_12 IC: Visiting: %and3 = select i1 %cmp2, i16 %and1, i16 0 ADD DEFERRED: %and1 = and i16 %p_12, 1 ADD DEFERRED: %and2 = select i1 %cmp1, i16 %and1, i16 0 IC: Mod = %and3 = select i1 %cmp2, i16 %and1, i16 0 New = %and3 = select i1 %cmp2, i16 %and2, i16 0 ADD: %and3 = select i1 %cmp2, i16 %and2, i16 0 ADD: %and2 = select i1 %cmp1, i16 %and1, i16 0 ADD: %and1 = and i16 %p_12, 1 IC: Visiting: %and1 = and i16 %p_12, 1 IC: Visiting: %and2 = select i1 %cmp1, i16 %and1, i16 0 IC: Visiting: %and3 = select i1 %cmp2, i16 %and2, i16 0 ADD DEFERRED: %and2 = select i1 %cmp1, i16 %and1, i16 0 ADD DEFERRED: %cmp2 = icmp eq i16 %and2, %p_12 IC: Mod = %and3 = select i1 %cmp2, i16 %and2, i16 0 New = %and3 = select i1 %cmp2, i16 %and1, i16 0 ADD: %and3 = select i1 %cmp2, i16 %and1, i16 0 ADD: %cmp2 = icmp eq i16 %and2, %p_12 ADD: %and2 = select i1 %cmp1, i16 %and1, i16 0 IC: Visiting: %and2 = select i1 %cmp1, i16 %and1, i16 0 IC: Visiting: %cmp2 = icmp eq i16 %and2, %p_12 IC: Visiting: %and3 = select i1 %cmp2, i16 %and1, i16 0 ADD DEFERRED: %and1 = and i16 %p_12, 1 ADD DEFERRED: %and2 = select i1 %cmp1, i16 %and1, i16 0 IC: Mod = %and3 = select i1 %cmp2, i16 %and1, i16 0 New = %and3 = select i1 %cmp2, i16 %and2, i16 0 ... Metadata
Metadata
Labels
llvm:hangCompiler hang (infinite loop)Compiler hang (infinite loop)llvm:instcombineCovers the InstCombine, InstSimplify and AggressiveInstCombine passesCovers the InstCombine, InstSimplify and AggressiveInstCombine passes