[llvm-bugs] [Bug 49296] New: [Regression] Suboptimal loop exit codegen

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=49296

Bug ID: 49296
   Summary: [Regression] Suboptimal loop exit codegen
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Loop Optimizer
  Assignee: unassignedb...@nondot.org
  Reporter: david.bolvan...@gmail.com
CC: llvm-bugs@lists.llvm.org

#include 
#include 

typedef uint32_t u32v8 __attribute__((vector_size(32)));
void double_load(int8_t *__restrict out, const int8_t *__restrict input)
{
u32v8 *vin = (u32v8 *)input;
u32v8 *vout = (u32v8 *)out;
for (unsigned i=0 ; i<1024 ; i+=32){
u32v8 in = *vin++;
*vout++ = in | (in >> 4);
}
}


Flags: -O3 -mavx2 -fno-unroll-loops

LLVM 10 and newer:
double_load(signed char*, signed char const*):   #
@double_load(signed char*, signed char const*)
xorl%eax, %eax
.LBB0_1:# =>This Inner Loop Header: Depth=1
vmovdqa (%rsi,%rax), %ymm0
vpsrld  $4, %ymm0, %ymm1
vpor%ymm0, %ymm1, %ymm0
vmovdqa %ymm0, (%rdi,%rax)
addq$32, %rax
leal-32(%rax), %ecx
cmpl$992, %ecx  # imm = 0x3E0
jb  .LBB0_1
vzeroupper
retq


LLVM 9:
double_load(signed char*, signed char const*):   #
@double_load(signed char*, signed char const*)
xorl%eax, %eax
.LBB0_1:# =>This Inner Loop Header: Depth=1
vmovdqa (%rsi,%rax), %ymm0
vpsrld  $4, %ymm0, %ymm1
vpor%ymm0, %ymm1, %ymm0
vmovdqa %ymm0, (%rdi,%rax)
addq$32, %rax
cmpl$1024, %eax # imm = 0x400
jb  .LBB0_1
vzeroupper
retq

LLVM IR comparison:
LLVM 10+:
  %15 = add nuw nsw i32 %8, 32
  %16 = icmp ult i32 %8, 992

LLVM 9:
  %15 = add nuw nsw i32 %8, 32
  %16 = icmp ult i32 %15, 1024



Codegen: https://godbolt.org/z/GzaTPj

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 40111] [DAGCombine] Move X86 saturated math combines to DAGCombine

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=40111

Simon Pilgrim  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #5 from Simon Pilgrim  ---
All of these folds have now been moved to DAGCombine

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 49215] Regression (12.0) Assertion `ValTy->isFPOrFPVectorTy() && "Expected float point or integer vector type."' failed

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=49215

Sanjay Patel  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Blocks||48902
 Resolution|FIXED   |---
 Fixed By Commit(s)||5b250a27ec78

--- Comment #7 from Sanjay Patel  ---
(In reply to Simon Pilgrim from comment #6)
> @spatel The subject says this is a 12.0 regression - what would be the
> cherry pick list to get this into the 12.x branch?

Ah - it's just this one:
https://reviews.llvm.org/rG5b250a27ec78

(The verifier improvement I was working on is independent, and I haven't pushed
it yet.)


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=48902
[Bug 48902] [meta] 12.0.0 Release Blockers
-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 48902] [meta] 12.0.0 Release Blockers

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=48902
Bug 48902 depends on bug 49215, which changed state.

Bug 49215 Summary: Regression (12.0) Assertion `ValTy->isFPOrFPVectorTy() && 
"Expected float point or integer vector type."' failed
https://bugs.llvm.org/show_bug.cgi?id=49215

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] Issue 31132 in oss-fuzz: llvm:clang-fuzzer: Stack-overflow in clang::FunctionProtoType::getExceptionSpecInfo

2021-02-20 Thread ClusterFuzz-External via monorail via llvm-bugs
Updates:
Labels: ClusterFuzz-Verified
Status: Verified

Comment #1 on issue 31132 by ClusterFuzz-External: llvm:clang-fuzzer: 
Stack-overflow in clang::FunctionProtoType::getExceptionSpecInfo
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31132#c1

ClusterFuzz testcase 613674399744 is verified as fixed in 
https://oss-fuzz.com/revisions?job=libfuzzer_asan_llvm&range=202102190600:202102200620

If this is incorrect, please file a bug on 
https://github.com/google/oss-fuzz/issues/new

-- 
You received this message because:
  1. You were specifically CC'd on the issue

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

Reply to this email to add a comment.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] Issue 30074 in oss-fuzz: llvm:llvm-opt-fuzzer--x86_64-irce: ASSERT: (isa(MaxNotTaken) || isa(MaxNotTaken)) && "No

2021-02-20 Thread ClusterFuzz-External via monorail via llvm-bugs
Updates:
Labels: ClusterFuzz-Verified
Status: Verified

Comment #1 on issue 30074 by ClusterFuzz-External: 
llvm:llvm-opt-fuzzer--x86_64-irce: ASSERT: 
(isa(MaxNotTaken) || isa(MaxNotTaken)) && "No
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30074#c1

ClusterFuzz testcase 5670654940676096 is verified as fixed in 
https://oss-fuzz.com/revisions?job=libfuzzer_asan_llvm&range=202102190600:202102200620

If this is incorrect, please file a bug on 
https://github.com/google/oss-fuzz/issues/new

-- 
You received this message because:
  1. You were specifically CC'd on the issue

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

Reply to this email to add a comment.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 44325] Wzero-as-null-pointer-constant warns when using `operator<=>`

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=44325

David Stone  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

--- Comment #15 from David Stone  ---
My test case still triggers the warning with libc++ and libstdc++ as of
3e1317fd323bf92c6adaf67598697049b08bb373. Has the fix landed in trunk?

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 49297] New: [llvm-cov] Revert D85036

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=49297

Bug ID: 49297
   Summary: [llvm-cov] Revert D85036
   Product: new-bugs
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: nikita@gmail.com
CC: htmldevelo...@gmail.com, llvm-bugs@lists.llvm.org,
v...@apple.com, zequa...@google.com
Blocks: 48902

https://reviews.llvm.org/D85036 has broken coverage generation in Rust, and
based on the comments on the review, in Swift as well. There already is a
consensus that the change is not correct and should be reverted.
https://reviews.llvm.org/D97101 has been opened to address the original
motivation on the clang side instead. I have verified that a simple revert does
fix coverage generation in Rust.


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=48902
[Bug 48902] [meta] 12.0.0 Release Blockers
-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 42085] JumpThreading: invalid transformation

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=42085

Nikita Popov  changed:

   What|Removed |Added

 CC||nikita@gmail.com
 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #36 from Nikita Popov  ---
Per above comments, this issue has been fixed a while ago.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 49298] New: Sort includes pass will sort inside raw strings

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=49298

Bug ID: 49298
   Summary: Sort includes pass will sort inside raw strings
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: Formatter
  Assignee: unassignedclangb...@nondot.org
  Reporter: n.jame...@hotmail.co.uk
CC: djas...@google.com, kli...@google.com,
llvm-bugs@lists.llvm.org

clang-format does not respect raw string literals when sorting includes

Take this snippet:
>const char *RawStr = R"(
>#include "headerB.h"
>#include "headerA.h"
>)";

Running clang-format over with SortIncludes enabled transforms this code to:
>const char *RawStr = R"(
>#include "headerA.h"
>#include "headerB.h"
>)";

The formatter should not sort these includes as they are part of a raw string
without a language delimiter.

The cause for this is pretty obvious, the include sorter runs without parsing
the code, so it can't see that include tokens should actually be part of a
string.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 48643] Missed opportunity for value range propagation from binary ops

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=48643

Nikita Popov  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Nikita Popov  ---
Fixed by
https://github.com/llvm/llvm-project/commit/a852234f70e344b238824b9d71e8df9c46de62f2.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 37345] clang crashes on valid code at -Os and above: Assertion `idx < size()' failed

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=37345

Nikita Popov  changed:

   What|Removed |Added

 Resolution|--- |WORKSFORME
 CC||nikita@gmail.com
 Status|NEW |RESOLVED

--- Comment #1 from Nikita Popov  ---
Doesn't reproduce on current trunk, so either the issue was fixed in the
meantime, or other changes have hidden the issue for this reproducer.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 49299] New: Merge b42d57a100c5df6ace68f686f5adaabeafe8a0f6 into release/12.x

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=49299

Bug ID: 49299
   Summary: Merge b42d57a100c5df6ace68f686f5adaabeafe8a0f6 into
release/12.x
   Product: clang
   Version: trunk
  Hardware: All
OS: OpenBSD
Status: NEW
  Severity: release blocker
  Priority: P
 Component: Driver
  Assignee: unassignedclangb...@nondot.org
  Reporter: b...@comstyle.com
CC: llvm-bugs@lists.llvm.org, neeil...@live.com,
richard-l...@metafoo.co.uk
Blocks: 48902

"[clang][Driver][OpenBSD] libcxx also requires pthread" libcxx requires pthread
when linking.


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=48902
[Bug 48902] [meta] 12.0.0 Release Blockers
-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 5716] Function template not instantiated if declared as friend

2021-02-20 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=5716

Bastien Penavayre  changed:

   What|Removed |Added

 CC||bastienpen...@gmail.com
 Status|RESOLVED|REOPENED
 Resolution|FIXED   |---

--- Comment #2 from Bastien Penavayre  ---
The example given is resolved but there are other cases that aren't,
for instance:

struct flag
{
template
friend  void *init(flag, T);
};

template
struct writer
{
template
friend  void *init(flag, T) {
return nullptr;
}
};

int main()
{
void *data = init(flag{}, 42);
writer tmp;
//note that if the next line is uncommented the link error disappear:
//sizeof(init(flag{}, 42));
}

produce the error: 
   undefined reference to `void* init(flag, int)'

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs