Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 May 2014 19:28:34 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r266675 - head/contrib/llvm/patches
Message-ID:  <201405251928.s4PJSYUx022788@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sun May 25 19:28:34 2014
New Revision: 266675
URL: http://svnweb.freebsd.org/changeset/base/266675

Log:
  Add the clang patch for r266674.

Added:
  head/contrib/llvm/patches/patch-r266674-clang-r209489-fix-xmmintrin.diff

Added: head/contrib/llvm/patches/patch-r266674-clang-r209489-fix-xmmintrin.diff
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/contrib/llvm/patches/patch-r266674-clang-r209489-fix-xmmintrin.diff	Sun May 25 19:28:34 2014	(r266675)
@@ -0,0 +1,49 @@
+Pull in r209489 from upstream clang trunk (by Akira Hatanaka):
+
+  Fix a bug in xmmintrin.h.
+
+  The last step of _mm_cvtps_pi16 should use _mm_packs_pi32, which is a function
+  that reads two __m64 values and packs four 32-bit values into four 16-bit
+  values.  
+
+  <rdar://problem/16873717>
+
+Pull in r209559 from upstream clang trunk (by Akira Hatanaka):
+
+  Recommit r209532 with -ffreestanding.
+
+  This is a test case for r209489.
+
+Introduced here: http://svnweb.freebsd.org/changeset/base/266674
+
+Index: tools/clang/lib/Headers/xmmintrin.h
+===================================================================
+--- tools/clang/lib/Headers/xmmintrin.h
++++ tools/clang/lib/Headers/xmmintrin.h
+@@ -903,7 +903,7 @@ _mm_cvtps_pi16(__m128 __a)
+   __a = _mm_movehl_ps(__a, __a);
+   __c = _mm_cvtps_pi32(__a);
+   
+-  return _mm_packs_pi16(__b, __c);
++  return _mm_packs_pi32(__b, __c);
+ }
+ 
+ static __inline__ __m64 __attribute__((__always_inline__, __nodebug__))
+Index: tools/clang/test/Headers/xmmintrin.c
+===================================================================
+--- tools/clang/test/Headers/xmmintrin.c
++++ tools/clang/test/Headers/xmmintrin.c
+@@ -0,0 +1,13 @@
++// RUN: %clang_cc1 %s -ffreestanding -triple x86_64-apple-macosx10.9.0 -emit-llvm -o - | FileCheck %s
++
++#include <xmmintrin.h>
++
++// Make sure the last step of _mm_cvtps_pi16 converts <4 x i32> to <4 x i16> by
++// checking that clang emits PACKSSDW instead of PACKSSWB.
++
++// CHECK: define i64 @test_mm_cvtps_pi16
++// CHECK: call x86_mmx @llvm.x86.mmx.packssdw
++
++__m64 test_mm_cvtps_pi16(__m128 a) {
++  return _mm_cvtps_pi16(a);
++}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405251928.s4PJSYUx022788>