Index: llvm/trunk/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll =================================================================== --- llvm/trunk/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll +++ llvm/trunk/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll @@ -10,61 +10,133 @@ define signext i32 @main() { ; CHECK-LABEL: main: -; CHECK: li 3, -32477 -; CHECK: li 6, 234 -; CHECK: sth 3, 46(1) -; CHECK: lis 3, 0 -; CHECK: ori 4, 3, 33059 -; CHECK: sync -; CHECK: .LBB0_1: # %L.entry -; CHECK: lharx 3, 0, 5 -; CHECK: cmpw 4, 3 -; CHECK: bne 0, .LBB0_3 -; CHECK: sthcx. 6, 0, 5 -; CHECK: bne 0, .LBB0_1 -; CHECK: b .LBB0_4 -; CHECK: .LBB0_3: # %L.entry -; CHECK: sthcx. 3, 0, 5 -; CHECK: .LBB0_4: # %L.entry -; CHECK: cmplwi 3, 33059 -; CHECK: lwsync -; CHECK: lhz 3, 46(1) -; CHECK: cmplwi 3, 234 +; CHECK: # %bb.0: # %L.entry +; CHECK-NEXT: mflr 0 +; CHECK-NEXT: std 0, 16(1) +; CHECK-NEXT: stdu 1, -48(1) +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: .cfi_offset lr, 16 +; CHECK-NEXT: li 3, -32477 +; CHECK-NEXT: li 6, 234 +; CHECK-NEXT: addi 5, 1, 46 +; CHECK-NEXT: sth 3, 46(1) +; CHECK-NEXT: lis 3, 0 +; CHECK-NEXT: ori 4, 3, 33059 +; CHECK-NEXT: sync +; CHECK-NEXT: .LBB0_1: # %L.entry +; CHECK-NEXT: # +; CHECK-NEXT: lharx 3, 0, 5 +; CHECK-NEXT: cmpw 4, 3 +; CHECK-NEXT: bne 0, .LBB0_3 +; CHECK-NEXT: # %bb.2: # %L.entry +; CHECK-NEXT: # +; CHECK-NEXT: sthcx. 6, 0, 5 +; CHECK-NEXT: bne 0, .LBB0_1 +; CHECK-NEXT: b .LBB0_4 +; CHECK-NEXT: .LBB0_3: # %L.entry +; CHECK-NEXT: sthcx. 3, 0, 5 +; CHECK-NEXT: .LBB0_4: # %L.entry +; CHECK-NEXT: cmplwi 3, 33059 +; CHECK-NEXT: lwsync +; CHECK-NEXT: bne 0, .LBB0_7 +; CHECK-NEXT: # %bb.5: # %L.B0000 +; CHECK-NEXT: lhz 3, 46(1) +; CHECK-NEXT: cmplwi 3, 234 +; CHECK-NEXT: bne 0, .LBB0_8 +; CHECK-NEXT: # %bb.6: # %L.B0001 +; CHECK-NEXT: addis 3, 2, .Lstr.2@toc@ha +; CHECK-NEXT: addi 3, 3, .Lstr.2@toc@l +; CHECK-NEXT: bl puts +; CHECK-NEXT: nop +; CHECK-NEXT: li 3, 0 +; CHECK-NEXT: b .LBB0_10 +; CHECK-NEXT: .LBB0_7: # %L.B0003 +; CHECK-NEXT: addis 3, 2, .Lstr@toc@ha +; CHECK-NEXT: addi 3, 3, .Lstr@toc@l +; CHECK-NEXT: b .LBB0_9 +; CHECK-NEXT: .LBB0_8: # %L.B0005 +; CHECK-NEXT: addis 3, 2, .Lstr.1@toc@ha +; CHECK-NEXT: addi 3, 3, .Lstr.1@toc@l +; CHECK-NEXT: .LBB0_9: # %L.B0003 +; CHECK-NEXT: bl puts +; CHECK-NEXT: nop +; CHECK-NEXT: li 3, 1 +; CHECK-NEXT: .LBB0_10: # %L.B0003 +; CHECK-NEXT: addi 1, 1, 48 +; CHECK-NEXT: ld 0, 16(1) +; CHECK-NEXT: mtlr 0 +; CHECK-NEXT: blr ; ; CHECK-P7-LABEL: main: -; CHECK-P7: li 3, -32477 -; CHECK-P7: lis 5, 0 -; CHECK-P7: li 7, 0 -; CHECK-P7: sth 3, 46(1) -; CHECK-P7: li 6, 234 -; CHECK-P7: ori 5, 5, 33059 -; CHECK-P7: rlwinm 3, 4, 3, 27, 27 -; CHECK-P7: ori 7, 7, 65535 -; CHECK-P7: sync -; CHECK-P7: slw 6, 6, 3 -; CHECK-P7: slw 8, 5, 3 -; CHECK-P7: slw 5, 7, 3 -; CHECK-P7: rldicr 4, 4, 0, 61 -; CHECK-P7: and 7, 6, 5 -; CHECK-P7: and 8, 8, 5 -; CHECK-P7: .LBB0_1: # %L.entry -; CHECK-P7: lwarx 9, 0, 4 -; CHECK-P7: and 6, 9, 5 -; CHECK-P7: cmpw 6, 8 -; CHECK-P7: bne 0, .LBB0_3 -; CHECK-P7: andc 9, 9, 5 -; CHECK-P7: or 9, 9, 7 -; CHECK-P7: stwcx. 9, 0, 4 -; CHECK-P7: bne 0, .LBB0_1 -; CHECK-P7: b .LBB0_4 -; CHECK-P7: .LBB0_3: # %L.entry -; CHECK-P7: stwcx. 9, 0, 4 -; CHECK-P7: .LBB0_4: # %L.entry -; CHECK-P7: srw 3, 6, 3 -; CHECK-P7: lwsync -; CHECK-P7: cmplwi 3, 33059 -; CHECK-P7: lhz 3, 46(1) -; CHECK-P7: cmplwi 3, 234 +; CHECK-P7: # %bb.0: # %L.entry +; CHECK-P7-NEXT: mflr 0 +; CHECK-P7-NEXT: std 0, 16(1) +; CHECK-P7-NEXT: stdu 1, -48(1) +; CHECK-P7-NEXT: .cfi_def_cfa_offset 48 +; CHECK-P7-NEXT: .cfi_offset lr, 16 +; CHECK-P7-NEXT: li 3, -32477 +; CHECK-P7-NEXT: lis 5, 0 +; CHECK-P7-NEXT: addi 4, 1, 46 +; CHECK-P7-NEXT: li 7, 0 +; CHECK-P7-NEXT: sth 3, 46(1) +; CHECK-P7-NEXT: li 6, 234 +; CHECK-P7-NEXT: ori 5, 5, 33059 +; CHECK-P7-NEXT: rlwinm 3, 4, 3, 27, 27 +; CHECK-P7-NEXT: ori 7, 7, 65535 +; CHECK-P7-NEXT: sync +; CHECK-P7-NEXT: slw 6, 6, 3 +; CHECK-P7-NEXT: slw 8, 5, 3 +; CHECK-P7-NEXT: slw 5, 7, 3 +; CHECK-P7-NEXT: rldicr 4, 4, 0, 61 +; CHECK-P7-NEXT: and 7, 6, 5 +; CHECK-P7-NEXT: and 8, 8, 5 +; CHECK-P7-NEXT: .LBB0_1: # %L.entry +; CHECK-P7-NEXT: # +; CHECK-P7-NEXT: lwarx 9, 0, 4 +; CHECK-P7-NEXT: and 6, 9, 5 +; CHECK-P7-NEXT: cmpw 6, 8 +; CHECK-P7-NEXT: bne 0, .LBB0_3 +; CHECK-P7-NEXT: # %bb.2: # %L.entry +; CHECK-P7-NEXT: # +; CHECK-P7-NEXT: andc 9, 9, 5 +; CHECK-P7-NEXT: or 9, 9, 7 +; CHECK-P7-NEXT: stwcx. 9, 0, 4 +; CHECK-P7-NEXT: bne 0, .LBB0_1 +; CHECK-P7-NEXT: b .LBB0_4 +; CHECK-P7-NEXT: .LBB0_3: # %L.entry +; CHECK-P7-NEXT: stwcx. 9, 0, 4 +; CHECK-P7-NEXT: .LBB0_4: # %L.entry +; CHECK-P7-NEXT: srw 3, 6, 3 +; CHECK-P7-NEXT: lwsync +; CHECK-P7-NEXT: cmplwi 3, 33059 +; CHECK-P7-NEXT: bne 0, .LBB0_7 +; CHECK-P7-NEXT: # %bb.5: # %L.B0000 +; CHECK-P7-NEXT: lhz 3, 46(1) +; CHECK-P7-NEXT: cmplwi 3, 234 +; CHECK-P7-NEXT: bne 0, .LBB0_8 +; CHECK-P7-NEXT: # %bb.6: # %L.B0001 +; CHECK-P7-NEXT: addis 3, 2, .Lstr.2@toc@ha +; CHECK-P7-NEXT: addi 3, 3, .Lstr.2@toc@l +; CHECK-P7-NEXT: bl puts +; CHECK-P7-NEXT: nop +; CHECK-P7-NEXT: li 3, 0 +; CHECK-P7-NEXT: b .LBB0_10 +; CHECK-P7-NEXT: .LBB0_7: # %L.B0003 +; CHECK-P7-NEXT: addis 3, 2, .Lstr@toc@ha +; CHECK-P7-NEXT: addi 3, 3, .Lstr@toc@l +; CHECK-P7-NEXT: b .LBB0_9 +; CHECK-P7-NEXT: .LBB0_8: # %L.B0005 +; CHECK-P7-NEXT: addis 3, 2, .Lstr.1@toc@ha +; CHECK-P7-NEXT: addi 3, 3, .Lstr.1@toc@l +; CHECK-P7-NEXT: .LBB0_9: # %L.B0003 +; CHECK-P7-NEXT: bl puts +; CHECK-P7-NEXT: nop +; CHECK-P7-NEXT: li 3, 1 +; CHECK-P7-NEXT: .LBB0_10: # %L.B0003 +; CHECK-P7-NEXT: addi 1, 1, 48 +; CHECK-P7-NEXT: ld 0, 16(1) +; CHECK-P7-NEXT: mtlr 0 +; CHECK-P7-NEXT: blr L.entry: %value.addr = alloca i16, align 2 store i16 -32477, i16* %value.addr, align 2 Index: llvm/trunk/utils/UpdateTestChecks/asm.py =================================================================== --- llvm/trunk/utils/UpdateTestChecks/asm.py +++ llvm/trunk/utils/UpdateTestChecks/asm.py @@ -215,8 +215,8 @@ asm = common.SCRUB_WHITESPACE_RE.sub(r' ', asm) # Expand the tabs used for indentation. asm = string.expandtabs(asm, 2) - # Stripe unimportant comments - asm = SCRUB_LOOP_COMMENT_RE.sub(r'', asm) + # Stripe unimportant comments, but leave the token '#' in place. + asm = SCRUB_LOOP_COMMENT_RE.sub(r'#', asm) # Strip trailing whitespace. asm = common.SCRUB_TRAILING_WHITESPACE_RE.sub(r'', asm) return asm