[llvm-dev] wasm: Bad codegen for i8 comparison
    Carlo Kok via llvm-dev 
    llvm-dev at lists.llvm.org
       
    Thu Jan 11 00:51:35 PST 2018
    
    
  
(Currently using a build from november but I didn't see any commit that 
could fix this for wasm); With the wasm backend,
  %2 = icmp sgt i8 %0, -1
becomes:
         i32.const       $4=, 255
         i32.const       $2=, 255
         i32.and         $3=, $0, $2
         i32.const       $5=, 255
         i32.and         $6=, $4, $5
         i32.gt_s        $7=, $3, $6
Which essentially does (arg & 0xff) > (0xff & 0xff) (if I read it 
correctly) and seems to always result in false.
Full testcase:
https://gist.github.com/carlokok/579b7793465cd0299cf4c609c569f559
    
    
More information about the llvm-dev
mailing list