[llvm-testresults] buildbot failure in smooshlab on clang-x86_64-darwin10-selfhost-rel

daniel_dunbar at apple.com daniel_dunbar at apple.com
Thu Aug 26 02:55:11 PDT 2010


The Buildbot has detected a new failure of clang-x86_64-darwin10-selfhost-rel on smooshlab.
Full details are available at:
 http://smooshlab.apple.com:8010/builders/clang-x86_64-darwin10-selfhost-rel/builds/4142

Buildbot URL: http://smooshlab.apple.com:8010/

Buildslave for this Build: smoosh-02

Build Reason: 
Build Source Stamp: 112176
Blamelist: void

BUILD FAILED: failed test-llvm test-llvm_1

sincerely,
 -The Buildbot


================================================================================

CHANGES:
File: lib/Target/ARM/ARMInstrThumb2.td
At: Thu 26 Aug 2010 02:09:40
Changed By: void
Comments: There seems to be a (potential) hardware bug with the CMN instruction and
comparison with 0. These two pieces of code should give identical results:

  rsbs r1, r1, 0
  cmp  r0, r1
  mov  r0, #0
  it   ls
  mov  r0, #1

and:

  cmn  r0, r1
  mov  r0, #0
  it   ls
  mov  r0, #1

However, the CMN gives the *opposite* result when r1 is 0. This is because the
carry flag is set in the CMP case but not in the CMN case. In short, the CMP
instruction doesn't perform a truncate of the (logical) NOT of 0 plus the value
of r0 and the carry bit (because the "carry bit" parameter to AddWithCarry is
defined as 1 in this case, the carry flag will always be set when r0 >= 0). The
CMN instruction doesn't perform a NOT of 0 so there is never a "carry" when this
AddWithCarry is performed (because the "carry bit" parameter to AddWithCarry is
defined as 0).

The AddWithCarry in the CMP case seems to be relying upon the identity:

  ~x + 1 = -x

However when x is 0 and unsigned, this doesn't hold:

   x = 0
  ~x = 0xFFFF FFFF
  ~x + 1 = 0x1 0000 0000
  (-x = 0) != (0x1 0000 0000 = ~x + 1)

Therefore, we should disable *all* versions of CMN, especially when comparing
against zero, until we can limit when the CMN instruction is used (when we know
that the RHS is not 0) or when we have a hardware fix for this.

(See the ARM docs for the "AddWithCarry" pseudo-code.)

This is related to <rdar://problem/7569620>.

Properties: 




LOGS:
Last 10 lines of 'stdio':
	    LLVM :: CodeGen/Thumb2/thumb2-cmn.ll
	    LLVM :: CodeGen/Thumb2/thumb2-cmn2.ll
	    LLVM :: MC/Disassembler/thumb-tests.txt
	
	  Expected Passes    : 4935
	  Expected Failures  : 29
	  Unsupported Tests  : 550
	  Unexpected Failures: 3
	make[1]: *** [check-local-lit] Error 1
	make: *** [check] Error 2

Last 10 lines of 'warnings':
	/Users/buildslave/zorg/buildbot/smooshlab/slave/build.clang-x86_64-darwin10-selfhost-rel/llvm.src/test/MC/Disassembler/thumb-tests.txt:25:1: warning: invalid instruction encoding

Last 10 lines of 'fail':
	LLVM :: CodeGen/Thumb2/thumb2-cmn.ll
	LLVM :: CodeGen/Thumb2/thumb2-cmn2.ll
	LLVM :: MC/Disassembler/thumb-tests.txt

Last 10 lines of 'xfail':
	LLVM :: MC/AsmParser/X86/x86_32-bit_cat.s
	LLVM :: MC/AsmParser/X86/x86_32-mismatched-add.s
	LLVM :: MC/AsmParser/X86/x86_32-encoding.s
	LLVM :: MC/AsmParser/directive_lsym.s
	LLVM :: MC/AsmParser/exprs-invalid.s
	LLVM :: Transforms/DeadArgElim/deadexternal.ll
	LLVM :: Transforms/GVN/rle-no-phi-translate.ll
	LLVM :: Transforms/IndVarSimplify/loop_evaluate_6.ll
	LLVM :: Transforms/TailCallElim/nocapture.ll
	LLVM :: Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll

Last 10 lines of 'unsupported':
	LLVM :: LLVMC/C++/hello.cpp
	LLVM :: LLVMC/C/sink.c
	LLVM :: LLVMC/C/emit-llvm.c
	LLVM :: LLVMC/C/hello.c
	LLVM :: LLVMC/C/include.c
	LLVM :: LLVMC/C/opt-test.c
	LLVM :: LLVMC/C++/together.cpp
	LLVM :: LLVMC/C/wall.c
	LLVM :: LLVMC/ObjC++/hello.mm
	LLVM :: LLVMC/ObjC/hello.m

Last 10 lines of 'thumb2-cmn.ll':
	<stdin>:8:1: note: scanning from here
	Leh_func_begin0:
	^
	<stdin>:11:2: note: possible intended match here
	 cmp r0, r1
	 ^
	--
	
	********************
	

Last 10 lines of 'thumb2-cmn2.ll':
	<stdin>:8:1: note: scanning from here
	Leh_func_begin0:
	^
	<stdin>:10:2: note: possible intended match here
	 mvn r1, #186
	 ^
	--
	
	********************
	

Last 10 lines of 'thumb-tests.txt':
	<stdin>:8:2: note: scanning from here
	 ldmia r0!, {r1}
	 ^
	<stdin>:9:3: note: possible intended match here
	 ldrb.w r8, #-24
	  ^
	--
	
	********************
	

Last 10 lines of 'stdio':
	    LLVM :: CodeGen/Thumb2/thumb2-cmn.ll
	    LLVM :: CodeGen/Thumb2/thumb2-cmn2.ll
	    LLVM :: MC/Disassembler/thumb-tests.txt
	
	  Expected Passes    : 4935
	  Expected Failures  : 29
	  Unsupported Tests  : 550
	  Unexpected Failures: 3
	make[1]: *** [check-local-lit] Error 1
	make: *** [check] Error 2

Last 10 lines of 'warnings':
	/Users/buildslave/zorg/buildbot/smooshlab/slave/build.clang-x86_64-darwin10-selfhost-rel/llvm.src/test/MC/Disassembler/thumb-tests.txt:25:1: warning: invalid instruction encoding

Last 10 lines of 'fail':
	LLVM :: CodeGen/Thumb2/thumb2-cmn2.ll
	LLVM :: CodeGen/Thumb2/thumb2-cmn.ll
	LLVM :: MC/Disassembler/thumb-tests.txt

Last 10 lines of 'xfail':
	LLVM :: MC/AsmParser/X86/x86_32-bit_cat.s
	LLVM :: MC/AsmParser/X86/x86_32-mismatched-add.s
	LLVM :: MC/AsmParser/X86/x86_32-encoding.s
	LLVM :: MC/AsmParser/directive_lsym.s
	LLVM :: MC/AsmParser/exprs-invalid.s
	LLVM :: Transforms/DeadArgElim/deadexternal.ll
	LLVM :: Transforms/GVN/rle-no-phi-translate.ll
	LLVM :: Transforms/IndVarSimplify/loop_evaluate_6.ll
	LLVM :: Transforms/TailCallElim/nocapture.ll
	LLVM :: Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll

Last 10 lines of 'unsupported':
	LLVM :: LLVMC/C++/hello.cpp
	LLVM :: LLVMC/C/hello.c
	LLVM :: LLVMC/C/opt-test.c
	LLVM :: LLVMC/C/emit-llvm.c
	LLVM :: LLVMC/C++/together.cpp
	LLVM :: LLVMC/C/include.c
	LLVM :: LLVMC/C/sink.c
	LLVM :: LLVMC/C/wall.c
	LLVM :: LLVMC/ObjC/hello.m
	LLVM :: LLVMC/ObjC++/hello.mm

Last 10 lines of 'thumb2-cmn2.ll':
	<stdin>:8:1: note: scanning from here
	Leh_func_begin0:
	^
	<stdin>:10:2: note: possible intended match here
	 mvn r1, #186
	 ^
	--
	
	********************
	

Last 10 lines of 'thumb2-cmn.ll':
	<stdin>:8:1: note: scanning from here
	Leh_func_begin0:
	^
	<stdin>:11:2: note: possible intended match here
	 cmp r0, r1
	 ^
	--
	
	********************
	

Last 10 lines of 'thumb-tests.txt':
	<stdin>:8:2: note: scanning from here
	 ldmia r0!, {r1}
	 ^
	<stdin>:9:3: note: possible intended match here
	 ldrb.w r8, #-24
	  ^
	--
	
	********************
	




More information about the llvm-testresults mailing list