[llvm-bugs] [Bug 49942] New: Loading a vector of i1 loads the wrong value
via llvm-bugs
llvm-bugs at lists.llvm.org
Mon Apr 12 17:38:08 PDT 2021
https://bugs.llvm.org/show_bug.cgi?id=49942
Bug ID: 49942
Summary: Loading a vector of i1 loads the wrong value
Product: libraries
Version: 10.0
Hardware: PC
OS: All
Status: NEW
Severity: enhancement
Priority: P
Component: Core LLVM classes
Assignee: unassignedbugs at nondot.org
Reporter: malle at umich.edu
CC: llvm-bugs at lists.llvm.org
This program:
```
@useFlag = private global <4 x i1> <i1 true, i1 true, i1 true, i1 true>
define i32 @get(i32 %arg) {
%ld = load <4 x i1>, <4 x i1>* @useFlag
%zx = zext <4 x i1> %ld to <4 x i32>
%ee = extractelement <4 x i32> %zx, i32 %arg
ret i32 %ee
}
define i32 @main() {
%g = call i32 @get(i32 2)
ret i32 %g
}
```
will return 0. I'd expect it to return 1 since it should load i1 true and then
zext that to i32 1.
Note that if you `get(i32 0)` then it returns 1 as expected. Also, with -O3
this returns 1 correctly since the load is optimized out.
Tested with:
```
$ clang-10 --version
clang version 10.0.0
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
```
Sorry if this is a duplicate! I found some related notes on lists.llvm.org, but
not a bug report.
--
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/20210413/a9751250/attachment.html>
More information about the llvm-bugs
mailing list