[LLVMdev] Possible instruction combine bug with pointer icmp?
Eli Friedman
eli.friedman at gmail.com
Fri Jun 28 07:56:43 PDT 2013
On Fri, Jun 28, 2013 at 6:13 AM, Richard Osborne <richard at xmos.com> wrote:
> If I give instcombine the following IR:
>
> define i1 @f([1 x i8]* %a, [1 x i8]* %b) {
> %c = getelementptr [1 x i8]* %a, i32 0, i32 0
> %d = getelementptr [1 x i8]* %b, i32 0, i32 0
> %cmp = icmp ult i8* %c, %d
> ret i1 %cmp
> }
>
> It optimizes it into:
>
> define i1 @f([1 x i8]* %a, [1 x i8]* %b) {
> %cmp = icmp slt [1 x i8]* %a, %b
> ret i1 %cmp
> }
>
> Is this a bug, or are there some semantics of icmp or getelementptr I'm
> missing that mean it's OK to change this from an unsigned comparison to a
> signed comparison?
>
Looks like a bug to me.
-Eli
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130628/3d2d5b8f/attachment.html>
More information about the llvm-dev
mailing list