Skip to content
Commits on Source (5)
......@@ -109,6 +109,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
$(top_srcdir)/config/fopen.m4 $(top_srcdir)/config/asm-bsr.m4 \
$(top_srcdir)/config/sse2_shift_defect.m4 \
$(top_srcdir)/config/builtin-popcount.m4 \
$(top_srcdir)/config/simd-intrinsics.m4 \
$(top_srcdir)/config/ax_cpuid_intel.m4 \
$(top_srcdir)/config/ax_cpuid_non_intel.m4 \
$(top_srcdir)/config/ax_check_compile_flag.m4 \
......
2018-07-04
\ No newline at end of file
2018-09-27
\ No newline at end of file
......@@ -23,6 +23,7 @@ m4_include([config/asm-bsr.m4])
m4_include([config/sse2_shift_defect.m4])
m4_include([config/builtin-popcount.m4])
m4_include([config/simd-intrinsics.m4])
m4_include([config/ax_cpuid_intel.m4])
m4_include([config/ax_cpuid_non_intel.m4])
......
# _mm_extract_epi64 is supposed to be covered by HAVE_SSE4_1, but fails on i386 machines
AC_DEFUN([ACX_SIMD_INTRINSICS], [
AC_LANG_SAVE
AC_LANG(C)
AC_MSG_CHECKING(for _mm_extract_epi64)
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <smmintrin.h>]],
[[__m128i a;]],
[[_mm_extract_epi64(a,0);]])],
[AC_MSG_RESULT(yes)
AC_DEFINE([HAVE_MM_EXTRACT_EPI64],[1],[Define to 1 if _mm_extract_epi64 intrinsic is available.])],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for _mm_popcnt_u64)
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <smmintrin.h>]],
[[int a;]],
[[_mm_popcnt_u64(a);]])],
[AC_MSG_RESULT(yes)
AC_DEFINE([HAVE_MM_POPCNT_U64],[1],[Define to 1 if _mm_popcnt_u64 intrinsic is available.])],
[AC_MSG_RESULT(no)])
AC_LANG_RESTORE
])
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for gmap 2018-07-04.
# Generated by GNU Autoconf 2.69 for gmap 2018-09-27.
#
# Report bugs to <Thomas Wu <twu@gene.com>>.
#
......@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gmap'
PACKAGE_TARNAME='gmap'
PACKAGE_VERSION='2018-07-04'
PACKAGE_STRING='gmap 2018-07-04'
PACKAGE_VERSION='2018-09-27'
PACKAGE_STRING='gmap 2018-09-27'
PACKAGE_BUGREPORT='Thomas Wu <twu@gene.com>'
PACKAGE_URL=''
 
......@@ -1373,7 +1373,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures gmap 2018-07-04 to adapt to many kinds of systems.
\`configure' configures gmap 2018-09-27 to adapt to many kinds of systems.
 
Usage: $0 [OPTION]... [VAR=VALUE]...
 
......@@ -1444,7 +1444,7 @@ fi
 
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of gmap 2018-07-04:";;
short | recursive ) echo "Configuration of gmap 2018-09-27:";;
esac
cat <<\_ACEOF
 
......@@ -1585,7 +1585,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
gmap configure 2018-07-04
gmap configure 2018-09-27
generated by GNU Autoconf 2.69
 
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -2191,7 +2191,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
 
It was created by gmap $as_me 2018-07-04, which was
It was created by gmap $as_me 2018-09-27, which was
generated by GNU Autoconf 2.69. Invocation command line was
 
$ $0 $@
......@@ -2541,8 +2541,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking package version" >&5
$as_echo_n "checking package version... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2018-07-04" >&5
$as_echo "2018-07-04" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2018-09-27" >&5
$as_echo "2018-09-27" >&6; }
 
 
### Read defaults
......@@ -4409,7 +4409,7 @@ fi
 
# Define the identity of the package.
PACKAGE='gmap'
VERSION='2018-07-04'
VERSION='2018-09-27'
 
 
cat >>confdefs.h <<_ACEOF
......@@ -16869,6 +16869,72 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_extract_epi64" >&5
$as_echo_n "checking for _mm_extract_epi64... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <smmintrin.h>
int
main ()
{
__m128i a;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
$as_echo "#define HAVE_MM_EXTRACT_EPI64 1" >>confdefs.h
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm_popcnt_u64" >&5
$as_echo_n "checking for _mm_popcnt_u64... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <smmintrin.h>
int
main ()
{
int a;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
$as_echo "#define HAVE_MM_POPCNT_U64 1" >>confdefs.h
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for whether simd is enabled" >&5
$as_echo_n "checking for whether simd is enabled... " >&6; }
# Check whether --enable-simd was given.
......@@ -19871,7 +19937,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by gmap $as_me 2018-07-04, which was
This file was extended by gmap $as_me 2018-09-27, which was
generated by GNU Autoconf 2.69. Invocation command line was
 
CONFIG_FILES = $CONFIG_FILES
......@@ -19937,7 +20003,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
gmap config.status 2018-07-04
gmap config.status 2018-09-27
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
 
......
......@@ -358,6 +358,7 @@ ACX_ASM_BSR
ACX_SSE2_SHIFT_DEFECT
ACX_SIMD_INTRINSICS
AC_MSG_CHECKING(for whether simd is enabled)
AC_ARG_ENABLE([simd],
......
gmap (2018-09-27-1) experimental; urgency=medium
* New upstream version 2018-09-27
* Set Architecture to any, we want to test if it builds on other archs
* Drop sse2.patch, applied by upstream, refresh install-data-local patch
-- Alexandre Mestiashvili <mestia@debian.org> Fri, 28 Sep 2018 09:58:12 +0000
gmap (2018-07-04-4) unstable; urgency=medium
[ Alexandre Mestiashvili ]
......
......@@ -17,7 +17,7 @@ Vcs-Git: https://salsa.debian.org/med-team/gmap.git
Homepage: http://research-pub.gene.com/gmap
Package: gmap
Architecture: any-amd64 any-i386
Architecture: any
Depends: ${misc:Depends},
${perl:Depends},
${shlibs:Depends}
......
......@@ -2,7 +2,7 @@ Description: Install data local
--- gmap.orig/Makefile.in
+++ gmap/Makefile.in
@@ -847,7 +847,7 @@
@@ -848,7 +848,7 @@
install-data-local:
......
sse2.patch
only-do-cpuid-on-amd64-i386.patch
install-data-local
Subject: Apply upstream patch fixing #902820
FTBFS on stretch/amd64 if CPU has SSE2 and nothing more
From: Thomas Wu <wu.thomas@gene.com>
Forwarded: Yes
--- gmap.orig/src/extension-search.c
+++ gmap/src/extension-search.c
@@ -340,13 +340,6 @@
#endif
-static void
-print_vector_dec (__m128i x) {
- printf("%d %d %d %d\n",
- _mm_extract_epi32(x,0),_mm_extract_epi32(x,1),_mm_extract_epi32(x,2),_mm_extract_epi32(x,3));
- return;
-}
-
#if !defined(HAVE_SSE4_2)
#define count_leading_zeroes_32(diff) ((diff >> 16) ? clz_table[diff >> 16] : 16 + clz_table[diff])
--- gmap.orig/src/kmer-search.c
+++ gmap/src/kmer-search.c
@@ -215,7 +215,8 @@
/* Algorithm 2: Stage3end_complete_path_run_gmap: complete_path -> hits */
-#ifdef HAVE_SSE2
+#ifdef DEBUG8
+#ifdef HAVE_SSE4_1
static void
print_vector_dec (__m128i x) {
printf("%d %d %d %d\n",
@@ -223,6 +224,7 @@
return;
}
#endif
+#endif
#if !defined(HAVE_SSE4_2)
......@@ -137,6 +137,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
$(top_srcdir)/config/fopen.m4 $(top_srcdir)/config/asm-bsr.m4 \
$(top_srcdir)/config/sse2_shift_defect.m4 \
$(top_srcdir)/config/builtin-popcount.m4 \
$(top_srcdir)/config/simd-intrinsics.m4 \
$(top_srcdir)/config/ax_cpuid_intel.m4 \
$(top_srcdir)/config/ax_cpuid_non_intel.m4 \
$(top_srcdir)/config/ax_check_compile_flag.m4 \
......@@ -125,10 +125,16 @@
/* Define to 1 if MAP_VARIABLE available for mmap. */
#undef HAVE_MMAP_MAP_VARIABLE
/* Define to 1 if _mm_extract_epi64 intrinsic is available. */
#undef HAVE_MM_EXTRACT_EPI64
/* Define to 1 if you support Intel intrinsic _mm_popcnt_u32/64 instructions
*/
#undef HAVE_MM_POPCNT
/* Define to 1 if _mm_popcnt_u64 intrinsic is available. */
#undef HAVE_MM_POPCNT_U64
/* Define to 1 if you have the `munmap' function. */
#undef HAVE_MUNMAP
......
......@@ -340,13 +340,6 @@ oligo_nt (UINT4 oligo, int oligosize) {
#endif
static void
print_vector_dec (__m128i x) {
printf("%d %d %d %d\n",
_mm_extract_epi32(x,0),_mm_extract_epi32(x,1),_mm_extract_epi32(x,2),_mm_extract_epi32(x,3));
return;
}
#if !defined(HAVE_SSE4_2)
#define count_leading_zeroes_32(diff) ((diff >> 16) ? clz_table[diff >> 16] : 16 + clz_table[diff])
......
......@@ -3092,7 +3092,7 @@ set_end_128 (__m128i _diff, int enddiscard) {
}
#if !defined(HAVE_SSE4_2)
#if !defined(HAVE_SSE4_2) || !defined(HAVE_MM_EXTRACT_EPI64)
#if 0
/* Naive method for pre-SSE4.2. Requires four popcount operations. */
......@@ -3135,7 +3135,7 @@ popcount_ones_128 (__m128i _diff) {
#elif defined(HAVE_POPCNT)
#define popcount_ones_128(_diff) (_popcnt64(_mm_extract_epi64(_diff,0)) + _popcnt64(_mm_extract_epi64(_diff,1)))
#elif defined(HAVE_MM_POPCNT)
#elif defined(HAVE_MM_POPCNT) && defined(HAVE_MM_POPCNT_U64)
#define popcount_ones_128(_diff) (_mm_popcnt_u64(_mm_extract_epi64(_diff,0)) + _mm_popcnt_u64(_mm_extract_epi64(_diff,1)))
#else
#define popcount_ones_128(_diff) (__builtin_popcountll(_mm_extract_epi64(_diff,0)) + __builtin_popcountll(_mm_extract_epi64(_diff,1)))
......@@ -3147,7 +3147,7 @@ count_leading_zeroes_128 (__m128i _diff) {
debug4(printf("Entered count_leading_zeroes_128 with "));
debug4(print_vector_hex(_diff));
#if defined(HAVE_SSE4_2) && defined(HAVE_LZCNT)
#if defined(HAVE_SSE4_2) && defined(HAVE_LZCNT) && defined(HAVE_MM_EXTRACT_EPI64)
UINT8 x;
if ((x = _mm_extract_epi64(_diff,1)) != 0) {
......@@ -3156,7 +3156,7 @@ count_leading_zeroes_128 (__m128i _diff) {
return 64 + (int) _lzcnt_u64(_mm_extract_epi64(_diff,0));
}
#elif defined(HAVE_SSE4_1)
#elif defined(HAVE_SSE4_1) && defined(HAVE_MM_EXTRACT_EPI64)
UINT8 x;
if ((x = _mm_extract_epi64(_diff,1)) != 0) {
......@@ -3190,7 +3190,7 @@ count_trailing_zeroes_128 (__m128i _diff) {
debug4(printf("Entered count_trailing_zeroes_128 with "));
debug4(print_vector_hex(_diff));
#if defined(HAVE_SSE4_2) && defined(HAVE_TZCNT)
#if defined(HAVE_SSE4_2) && defined(HAVE_TZCNT) && defined(HAVE_MM_EXTRACT_EPI64)
UINT8 x;
if ((x = _mm_extract_epi64(_diff,0)) != 0) {
......@@ -3199,7 +3199,7 @@ count_trailing_zeroes_128 (__m128i _diff) {
return 64 + (int) _tzcnt_u64(_mm_extract_epi64(_diff,1));
}
#elif defined(HAVE_SSE4_1)
#elif defined(HAVE_SSE4_1) && defined(HAVE_MM_EXTRACT_EPI64)
UINT8 x;
if ((x = _mm_extract_epi64(_diff,0)) != 0) {
......
......@@ -20403,7 +20403,7 @@ Genome_hr_setup (Genomecomp_T *ref_blocks_in, Genomecomp_T *snp_blocks_in,
 
#if defined(HAVE_POPCNT)
#define popcount_ones_256(_diff) (_popcnt64(_mm256_extract_epi64(_diff,0)) + _popcnt64(_mm256_extract_epi64(_diff,1)) + popcnt64(_mm256_extract_epi64(_diff,2)) + _popcnt64(_mm256_extract_epi64(_diff,3)))
#elif defined(HAVE_MM_POPCNT)
#elif defined(HAVE_MM_POPCNT) && defined(HAVE_MM_POPCNT_U64)
#define popcount_ones_256(_diff) (_mm_popcnt_u64(_mm256_extract_epi64(_diff,0)) + _mm_popcnt_u64(_mm256_extract_epi64(_diff,1)) + _mm_popcnt_u64(_mm256_extract_epi64(_diff,2)) + _mm_popcnt_u64(_mm256_extract_epi64(_diff,3)))
#else
#define popcount_ones_256(_diff) (__builtin_popcountll(_mm256_extract_epi64(_diff,0)) + __builtin_popcountll(_mm256_extract_epi64(_diff,1)) + __builtin_popcountll(_mm256_extract_epi64(_diff,2)) + __builtin_popcountll(_mm256_extract_epi64(_diff,3)))
......@@ -20634,7 +20634,7 @@ set_end_128 (__m128i _diff, int enddiscard) {
}
 
 
#if !defined(HAVE_SSE4_2)
#if !defined(HAVE_SSE4_2) || !defined(HAVE_MM_EXTRACT_EPI64)
 
#if 0
/* Naive method for pre-SSE4.2. Requires four popcount operations. */
......@@ -20689,7 +20689,7 @@ count_leading_zeroes_128 (__m128i _diff) {
debug4(printf("Entered count_leading_zeroes_128 with "));
debug4(print_vector_hex(_diff));
 
#if defined(HAVE_SSE4_2) && defined(HAVE_LZCNT)
#if defined(HAVE_SSE4_2) && defined(HAVE_LZCNT) && defined(HAVE_MM_EXTRACT_EPI64)
UINT8 x;
 
if ((x = _mm_extract_epi64(_diff,1)) != 0) {
......@@ -20698,7 +20698,7 @@ count_leading_zeroes_128 (__m128i _diff) {
return 64 + (int) _lzcnt_u64(_mm_extract_epi64(_diff,0));
}
 
#elif defined(HAVE_SSE4_1)
#elif defined(HAVE_SSE4_1) && defined(HAVE_MM_EXTRACT_EPI64)
UINT8 x;
 
if ((x = _mm_extract_epi64(_diff,1)) != 0) {
......@@ -20732,7 +20732,7 @@ count_trailing_zeroes_128 (__m128i _diff) {
debug4(printf("Entered count_trailing_zeroes_128 with "));
debug4(print_vector_hex(_diff));
 
#if defined(HAVE_SSE4_2) && defined(HAVE_TZCNT)
#if defined(HAVE_SSE4_2) && defined(HAVE_TZCNT) && defined(HAVE_MM_EXTRACT_EPI64)
UINT8 x;
 
if ((x = _mm_extract_epi64(_diff,0)) != 0) {
......@@ -20741,7 +20741,7 @@ count_trailing_zeroes_128 (__m128i _diff) {
return 64 + (int) _tzcnt_u64(_mm_extract_epi64(_diff,1));
}
 
#elif defined(HAVE_SSE4_1)
#elif defined(HAVE_SSE4_1) && defined(HAVE_MM_EXTRACT_EPI64)
UINT8 x;
 
if ((x = _mm_extract_epi64(_diff,0)) != 0) {
......@@ -215,7 +215,8 @@ static Oligospace_T oligobase_mask;
/* Algorithm 2: Stage3end_complete_path_run_gmap: complete_path -> hits */
#ifdef HAVE_SSE2
#ifdef DEBUG8
#ifdef HAVE_SSE4_1
static void
print_vector_dec (__m128i x) {
printf("%d %d %d %d\n",
......@@ -223,6 +224,7 @@ print_vector_dec (__m128i x) {
return;
}
#endif
#endif
#if !defined(HAVE_SSE4_2)
......
......@@ -109,6 +109,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
$(top_srcdir)/config/fopen.m4 $(top_srcdir)/config/asm-bsr.m4 \
$(top_srcdir)/config/sse2_shift_defect.m4 \
$(top_srcdir)/config/builtin-popcount.m4 \
$(top_srcdir)/config/simd-intrinsics.m4 \
$(top_srcdir)/config/ax_cpuid_intel.m4 \
$(top_srcdir)/config/ax_cpuid_non_intel.m4 \
$(top_srcdir)/config/ax_check_compile_flag.m4 \
......
......@@ -110,6 +110,7 @@ am__aclocal_m4_deps = $(top_srcdir)/config/libtool.m4 \
$(top_srcdir)/config/fopen.m4 $(top_srcdir)/config/asm-bsr.m4 \
$(top_srcdir)/config/sse2_shift_defect.m4 \
$(top_srcdir)/config/builtin-popcount.m4 \
$(top_srcdir)/config/simd-intrinsics.m4 \
$(top_srcdir)/config/ax_cpuid_intel.m4 \
$(top_srcdir)/config/ax_cpuid_non_intel.m4 \
$(top_srcdir)/config/ax_check_compile_flag.m4 \
......