From 4b946916ac657c05699d2761febb88bab7fac76e Mon Sep 17 00:00:00 2001 From: Amaury Sechet Date: Wed, 8 Feb 2017 00:32:36 +0000 Subject: [DAGCombiner] Push truncate through adde when the carry isn't used. Summary: As per title. Reviewers: mkuper, spatel, bkramer, RKSimon, zvi Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29528 llvm-svn: 294394 --- llvm/test/CodeGen/X86/adde-carry.ll | 11 ++++------- llvm/test/CodeGen/X86/known-bits.ll | 3 +-- 2 files changed, 5 insertions(+), 9 deletions(-) (limited to 'llvm/test/CodeGen') diff --git a/llvm/test/CodeGen/X86/adde-carry.ll b/llvm/test/CodeGen/X86/adde-carry.ll index e111f683dd3..9483a6b492c 100644 --- a/llvm/test/CodeGen/X86/adde-carry.ll +++ b/llvm/test/CodeGen/X86/adde-carry.ll @@ -28,8 +28,7 @@ define void @b(i32* nocapture %r, i64 %a, i64 %b, i32 %c) nounwind { ; CHECK-LABEL: b: ; CHECK: # BB#0: # %entry ; CHECK-NEXT: addq %rdx, %rsi -; CHECK-NEXT: sbbq %rax, %rax -; CHECK-NEXT: subl %eax, %ecx +; CHECK-NEXT: adcl $0, %ecx ; CHECK-NEXT: movl %ecx, (%rdi) ; CHECK-NEXT: retq entry: @@ -48,8 +47,7 @@ define void @c(i16* nocapture %r, i64 %a, i64 %b, i16 %c) nounwind { ; CHECK-LABEL: c: ; CHECK: # BB#0: # %entry ; CHECK-NEXT: addq %rdx, %rsi -; CHECK-NEXT: sbbq %rax, %rax -; CHECK-NEXT: subl %eax, %ecx +; CHECK-NEXT: adcl $0, %ecx ; CHECK-NEXT: movw %cx, (%rdi) ; CHECK-NEXT: retq entry: @@ -68,8 +66,7 @@ define void @d(i8* nocapture %r, i64 %a, i64 %b, i8 %c) nounwind { ; CHECK-LABEL: d: ; CHECK: # BB#0: # %entry ; CHECK-NEXT: addq %rdx, %rsi -; CHECK-NEXT: sbbq %rax, %rax -; CHECK-NEXT: subl %eax, %ecx +; CHECK-NEXT: adcl $0, %ecx ; CHECK-NEXT: movb %cl, (%rdi) ; CHECK-NEXT: retq entry: @@ -165,8 +162,8 @@ define void @muladd(%accumulator* nocapture %this, i64 %arg.a, i64 %arg.b) { ; CHECK-NEXT: adcq $0, %rdx ; CHECK-NEXT: movq %rax, (%rdi) ; CHECK-NEXT: addq 8(%rdi), %rdx -; CHECK-NEXT: sbbq %rax, %rax ; CHECK-NEXT: movq %rdx, 8(%rdi) +; CHECK-NEXT: sbbl %eax, %eax ; CHECK-NEXT: subl %eax, 16(%rdi) ; CHECK-NEXT: retq entry: diff --git a/llvm/test/CodeGen/X86/known-bits.ll b/llvm/test/CodeGen/X86/known-bits.ll index f3fa12700f9..e458d7ab621 100644 --- a/llvm/test/CodeGen/X86/known-bits.ll +++ b/llvm/test/CodeGen/X86/known-bits.ll @@ -151,8 +151,7 @@ define i128 @knownbits_mask_addc_shl(i64 %a0, i64 %a1, i64 %a2) nounwind { ; X64-NEXT: andq $-1024, %rdi # imm = 0xFC00 ; X64-NEXT: andq $-1024, %rsi # imm = 0xFC00 ; X64-NEXT: addq %rdi, %rsi -; X64-NEXT: sbbq %rax, %rax -; X64-NEXT: subl %eax, %edx +; X64-NEXT: adcl $0, %edx ; X64-NEXT: shldq $54, %rsi, %rdx ; X64-NEXT: xorl %eax, %eax ; X64-NEXT: retq -- cgit v1.2.3