leonardchan added inline comments.

================
Comment at: clang/test/Frontend/fixed_point_comparisons.c:56
+
+void TestComparisons() {
+  short _Accum sa;
----------------
ebevhan wrote:
> leonardchan wrote:
> > ebevhan wrote:
> > > Missing saturating and saturating/non-saturating comparisons. I'd like to 
> > > see the differences between unsigned padding and not there, if there are 
> > > any.
> > I don't think there should be since we compare by converting to a common 
> > type that should fit both operands, but it does help to have tests that 
> > also confirm this. Added some saturation cases under 
> > `TestSaturationComparisons`.
> > 
> > As for padding, `TestSaturationComparisons` have cases comparing signed 
> > with unsigned types, and there are other cases in `TestComparisons` and 
> > `TestIntComparisons` that deal with unsigned comparisons. The way the lit 
> > tests are organized, lines marked with `CHECK` mean that those lines are 
> > produced for both the padding and no padding cases whereas `SIGNED` or 
> > `UNSIGNED` are produced exclusively for no padding and padding cases, 
> > respectively.
> There is a difference between saturating signed types and saturating unsigned 
> types, though; the common type of two of the same saturating unsigned type is 
> one bit less due to padding.
> 
> Unless there is something in the type commoning that I've missed?
You're right. It's just that when comparing values, we care about padding and 
not saturation since we aren't "writing" a value, so a comparison between a 
`_Sat short _Accum` and `_Sat unsigned short _Accum` should be the same as one 
for a `short _Accum` and `unsigned short _Accum`. With unsigned padding, both 
operations should not result in any resizing/scaling since they're already the 
same size and scale.

Added a test case for this under `TestSaturationComparisons`.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57219/new/

https://reviews.llvm.org/D57219



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to