[PATCH] D15438: Do not ASSERTZEXT for i16 result of bitcast from f16 operand

Pirama Arumuga Nainar via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 11 11:30:03 PST 2015


pirama added a comment.

Hi James,

> Can you explain why this is necessary? Why is ASSERTZEXT not correct in this case?


ASSERTZEXT does not generate any instructions but just records that its input operand is zero extended.  When I wrote this code initially, I incorrectly inserted this ASSERTZEXT while extending the result from i16 to i32.  That later causes the backend to assume that the top bits are zero and incorrectly use the 'orr' instruction (https://llvm.org/bugs/show_bug.cgi?id=25492).  Removing the ASSERTZEXT forces the backend to use uxth and pkhbt.


http://reviews.llvm.org/D15438





More information about the llvm-commits mailing list