kromanova marked an inline comment as done.

================
Comment at: lib/Headers/f16cintrin.h:47
@@ -34,1 +46,3 @@
+
+
 #define _mm_cvtps_ph(a, imm) __extension__ ({ \
----------------
craig.topper wrote:
> Can we do something like this to remove the last temporary?
> 
> #define _cvtss_sh(a, imm) __extension__ ({ \
>   (unsigned short)((__v8hi)__builtin_ia32_vcvtps2ph((__v4sf){a, 0, 0, 0}, 
> (imm))[0]); \
> })
Hi Craig,

I should have looked how it's done just a few lines below. Sorry.
I had to slightly modify the body of the define that you proposed by adding an 
additional pair of round brackets, otherwise I got compilation errors like this:

   ~/ngh/ToT_commit/build/bin/clang  intr.cpp  -mf16c intr.cpp:10:7: 
  error: C-style cast from scalar 'short' to vector '__v8hi'
      (vector of 8 'short' values) of different size
  a = _cvtss_sh(res, imm);
      ^~~~~~~~~~~~~~~~~~~
  ~/ngh/ToT_commit/build/bin/../lib/clang/3.8.0/include/f16cintrin.h:43:20: 
note:
      expanded from macro '_cvtss_sh'
  (unsigned short)((__v8hi)__builtin_ia32_vcvtps2ph((__v4sf){a, 0, 0, 0}, \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  intr.cpp:10:5: error: assigning to 'unsigned short' from incompatible type
      'void'
  a = _cvtss_sh(res, imm);
    ^ ~~~~~~~~~~~~~~~~~~~
  2 errors generated.





Repository:
  rL LLVM

http://reviews.llvm.org/D16177



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

Reply via email to