From owner-freebsd-bugs@FreeBSD.ORG Sun Jan 7 03:20:16 2007 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A6FFF16A40F for ; Sun, 7 Jan 2007 03:20:16 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 98F4613C442 for ; Sun, 7 Jan 2007 03:20:16 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id l073KGnS004789 for ; Sun, 7 Jan 2007 03:20:16 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id l073KGNP004788; Sun, 7 Jan 2007 03:20:16 GMT (envelope-from gnats) Date: Sun, 7 Jan 2007 03:20:16 GMT Message-Id: <200701070320.l073KGNP004788@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Mikhail Teterin Cc: Subject: Re: bin/106734: [patch] SSE2 optimization for bzip2/libbz2 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Mikhail Teterin List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jan 2007 03:20:16 -0000 The following reply was made to PR bin/106734; it has been noted by GNATS. From: Mikhail Teterin To: jseward@acm.org (Julian Seward) Cc: bug-followup@freebsd.org Subject: Re: bin/106734: [patch] SSE2 optimization for bzip2/libbz2 Date: Sat, 6 Jan 2007 21:37:20 -0500 (EST) > According to Valgrind on amd64-linux, this patch causes bzip2 to > do comparisons based on uninitialised memory when compressing, for the > attached file (PLIST). > > ==16140== Conditional jump or move depends on uninitialised value(s) > ==16140== at 0x414ECF: mainGtU (blocksort.c:538) > ==16140== by 0x414B08: mainSimpleSort (blocksort.c:690) > ==16140== by 0x4150E1: mainQSort3 (blocksort.c:805) Julian! You informed me of this issue in a direct e-mail from Dec 19. I responded the next day on Dec 20: ------------------------------------------------------------ = From my 5-minute investigation, I *think* this is because the loads = /* Load the bytes: */ = n1 = (__m128i)_mm_loadu_pd((double *)(block + i1)); = n2 = (__m128i)_mm_loadu_pd((double *)(block + i2)); I doubt it -- Valgrind's diagnostics says "Conditional jump or move depends on uninitialised value(s)". There are no jumps in the above code, there are two machine instructions (executed in parallel). ------------------------------------------------------------ Have you not received the e-mail with above text? (Message-Id: <200612200615.22819@Misha>). Yours, -mi