[LLVMdev] RFC: Constant Hoisting

Chris Sears chris.sears at gmail.com
Mon Feb 2 21:21:04 PST 2015


I hadn't seen the godbolt compiler comparison site before.
So I plugged newtst.c into it and my problem did not show up
on any of the clang versions.

I do not understand this but I will pull a fresh tree from SVN,
reapply the patch and recompile from scratch.

However, there was another bug which showed up between
3.3 and 3.4.1. I'd noticed this before and I was tracking it
separately but I'd made no headway in solving it.

With x86 3.4.1 (-O3 -march=native -x c), for some reason
the last bit test expression isn't matching.

(((xx) & (1ULL << (56))))


It generates

movabsq $72057594037927936, %rcx # imm = 0x100000000000000
andq %rcx, %rdi


However on 3.3, it (correctly) generates

btq $56, %rdi
jb .LBB0_13
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150202/c10ed333/attachment.html>


More information about the llvm-dev mailing list