diff options
author | Kevin B. Smith <kevin.b.smith@intel.com> | 2016-06-15 16:37:46 +0000 |
---|---|---|
committer | Kevin B. Smith <kevin.b.smith@intel.com> | 2016-06-15 16:37:46 +0000 |
commit | 54566a0e9a73e5fd01cc7b43f5bd64d39a4ae887 (patch) | |
tree | 59d26b58284851cda22ffe9d63d053d494585694 /llvm/test | |
parent | 9d4842251c0b8406fa0801208bbbe3d365eff6c3 (diff) | |
download | bcm5719-llvm-54566a0e9a73e5fd01cc7b43f5bd64d39a4ae887.tar.gz bcm5719-llvm-54566a0e9a73e5fd01cc7b43f5bd64d39a4ae887.zip |
[X86]: Quit promoting 8 and 16 bit compares to 32 bit.
Differential Revision: http://reviews.llvm.org/D21144
llvm-svn: 272801
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/CodeGen/X86/3addr-16bit.ll | 8 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/atomic16.ll | 56 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/atomic8.ll | 48 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/ctpop-combine.ll | 2 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/machine-sink-and-implicit-null-checks.ll | 2 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/memcmp.ll | 6 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/pr5145.ll | 16 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/x86-shrink-wrapping.ll | 3 |
8 files changed, 73 insertions, 68 deletions
diff --git a/llvm/test/CodeGen/X86/3addr-16bit.ll b/llvm/test/CodeGen/X86/3addr-16bit.ll index 2d6a5e76657..c80e91a4d8b 100644 --- a/llvm/test/CodeGen/X86/3addr-16bit.ll +++ b/llvm/test/CodeGen/X86/3addr-16bit.ll @@ -12,7 +12,7 @@ entry: ; 64BIT-LABEL: t1: ; 64BIT-NOT: movw %si, %ax -; 64BIT: leal 1(%rsi), %eax +; 64BIT: movl %esi, %eax %0 = icmp eq i16 %k, %c ; <i1> [#uses=1] %1 = add i16 %k, 1 ; <i16> [#uses=3] br i1 %0, label %bb, label %bb1 @@ -34,7 +34,7 @@ entry: ; 64BIT-LABEL: t2: ; 64BIT-NOT: movw %si, %ax -; 64BIT: leal -1(%rsi), %eax +; 64BIT: movl %esi, %eax ; 64BIT: movzwl %ax %0 = icmp eq i16 %k, %c ; <i1> [#uses=1] %1 = add i16 %k, -1 ; <i16> [#uses=3] @@ -59,7 +59,7 @@ entry: ; 64BIT-LABEL: t3: ; 64BIT-NOT: movw %si, %ax -; 64BIT: leal 2(%rsi), %eax +; 64BIT: movl %esi, %eax %0 = add i16 %k, 2 ; <i16> [#uses=3] %1 = icmp eq i16 %k, %c ; <i1> [#uses=1] br i1 %1, label %bb, label %bb1 @@ -82,7 +82,7 @@ entry: ; 64BIT-LABEL: t4: ; 64BIT-NOT: movw %si, %ax -; 64BIT: leal (%rsi,%rdi), %eax +; 64BIT: movl %esi, %eax %0 = add i16 %k, %c ; <i16> [#uses=3] %1 = icmp eq i16 %k, %c ; <i1> [#uses=1] br i1 %1, label %bb, label %bb1 diff --git a/llvm/test/CodeGen/X86/atomic16.ll b/llvm/test/CodeGen/X86/atomic16.ll index f6892de43d8..90716cc3984 100644 --- a/llvm/test/CodeGen/X86/atomic16.ll +++ b/llvm/test/CodeGen/X86/atomic16.ll @@ -154,17 +154,19 @@ define void @atomic_fetch_nand16(i16 %x) nounwind { } define void @atomic_fetch_max16(i16 %x) nounwind { +; X64-LABEL: atomic_fetch_max16 +; X32-LABEL: atomic_fetch_max16 %t1 = atomicrmw max i16* @sc16, i16 %x acquire -; X64: movswl -; X64: movswl -; X64: subl +; X64: movw +; X64: movw +; X64: subw ; X64: cmov ; X64: lock ; X64: cmpxchgw -; X32: movswl -; X32: movswl -; X32: subl +; X32: movw +; X32: movw +; X32: subw ; X32: cmov ; X32: lock ; X32: cmpxchgw @@ -174,17 +176,19 @@ define void @atomic_fetch_max16(i16 %x) nounwind { } define void @atomic_fetch_min16(i16 %x) nounwind { +; X64-LABEL: atomic_fetch_min16 +; X32-LABEL: atomic_fetch_min16 %t1 = atomicrmw min i16* @sc16, i16 %x acquire -; X64: movswl -; X64: movswl -; X64: subl +; X64: movw +; X64: movw +; X64: subw ; X64: cmov ; X64: lock ; X64: cmpxchgw -; X32: movswl -; X32: movswl -; X32: subl +; X32: movw +; X32: movw +; X32: subw ; X32: cmov ; X32: lock ; X32: cmpxchgw @@ -194,17 +198,19 @@ define void @atomic_fetch_min16(i16 %x) nounwind { } define void @atomic_fetch_umax16(i16 %x) nounwind { +; X64-LABEL: atomic_fetch_umax16 +; X32-LABEL: atomic_fetch_umax16 %t1 = atomicrmw umax i16* @sc16, i16 %x acquire -; X64: movzwl -; X64: movzwl -; X64: subl +; X64: movw +; X64: movw +; X64: subw ; X64: cmov ; X64: lock ; X64: cmpxchgw -; X32: movzwl -; X32: movzwl -; X32: subl +; X32: movw +; X32: movw +; X32: subw ; X32: cmov ; X32: lock ; X32: cmpxchgw @@ -214,17 +220,19 @@ define void @atomic_fetch_umax16(i16 %x) nounwind { } define void @atomic_fetch_umin16(i16 %x) nounwind { +; X64-LABEL: atomic_fetch_umin16 +; X32-LABEL: atomic_fetch_umin16 %t1 = atomicrmw umin i16* @sc16, i16 %x acquire -; X64: movzwl -; X64: movzwl -; X64: subl +; X64: movw +; X64: movw +; X64: subw ; X64: cmov ; X64: lock ; X64: cmpxchgw -; X32: movzwl -; X32: movzwl -; X32: subl +; X32: movw +; X32: movw +; X32: subw ; X32: cmov ; X32: lock ; X32: cmpxchgw diff --git a/llvm/test/CodeGen/X86/atomic8.ll b/llvm/test/CodeGen/X86/atomic8.ll index 5eef9b295e8..01123ae9b07 100644 --- a/llvm/test/CodeGen/X86/atomic8.ll +++ b/llvm/test/CodeGen/X86/atomic8.ll @@ -157,15 +157,15 @@ define void @atomic_fetch_max8(i8 %x) nounwind { ; X64-LABEL: atomic_fetch_max8: ; X32-LABEL: atomic_fetch_max8: %t1 = atomicrmw max i8* @sc8, i8 %x acquire -; X64: movsbl -; X64: movsbl -; X64: subl +; X64: movb +; X64: movb +; X64: subb ; X64: lock ; X64: cmpxchgb -; X32: movsbl -; X32: movsbl -; X32: subl +; X32: movb +; X32: movb +; X32: subb ; X32: lock ; X32: cmpxchgb ret void @@ -177,15 +177,15 @@ define void @atomic_fetch_min8(i8 %x) nounwind { ; X64-LABEL: atomic_fetch_min8: ; X32-LABEL: atomic_fetch_min8: %t1 = atomicrmw min i8* @sc8, i8 %x acquire -; X64: movsbl -; X64: movsbl -; X64: subl +; X64: movb +; X64: movb +; X64: subb ; X64: lock ; X64: cmpxchgb -; X32: movsbl -; X32: movsbl -; X32: subl +; X32: movb +; X32: movb +; X32: subb ; X32: lock ; X32: cmpxchgb ret void @@ -197,15 +197,15 @@ define void @atomic_fetch_umax8(i8 %x) nounwind { ; X64-LABEL: atomic_fetch_umax8: ; X32-LABEL: atomic_fetch_umax8: %t1 = atomicrmw umax i8* @sc8, i8 %x acquire -; X64: movzbl -; X64: movzbl -; X64: subl +; X64: movb +; X64: movb +; X64: subb ; X64: lock ; X64: cmpxchgb -; X32: movzbl -; X32: movzbl -; X32: subl +; X32: movb +; X32: movb +; X32: subb ; X32: lock ; X32: cmpxchgb ret void @@ -217,15 +217,15 @@ define void @atomic_fetch_umin8(i8 %x) nounwind { ; X64-LABEL: atomic_fetch_umin8: ; X32-LABEL: atomic_fetch_umin8: %t1 = atomicrmw umin i8* @sc8, i8 %x acquire -; X64: movzbl -; X64: movzbl -; X64: subl +; X64: movb +; X64: movb +; X64: subb ; X64: lock ; X64: cmpxchgb -; X32: movzbl -; X32: movzbl -; X32: subl +; X32: movb +; X32: movb +; X32: subb ; X32: lock ; X32: cmpxchgb ret void diff --git a/llvm/test/CodeGen/X86/ctpop-combine.ll b/llvm/test/CodeGen/X86/ctpop-combine.ll index 463505bd95d..786f7f9b1cc 100644 --- a/llvm/test/CodeGen/X86/ctpop-combine.ll +++ b/llvm/test/CodeGen/X86/ctpop-combine.ll @@ -35,6 +35,6 @@ define i32 @test3(i64 %x) nounwind readnone { %conv = zext i1 %cmp to i32 ret i32 %conv ; CHECK-LABEL: test3: -; CHECK: cmpl $2 +; CHECK: cmpb $2 ; CHECK: ret } diff --git a/llvm/test/CodeGen/X86/machine-sink-and-implicit-null-checks.ll b/llvm/test/CodeGen/X86/machine-sink-and-implicit-null-checks.ll index d8fda86739c..16ee6ebbbcd 100644 --- a/llvm/test/CodeGen/X86/machine-sink-and-implicit-null-checks.ll +++ b/llvm/test/CodeGen/X86/machine-sink-and-implicit-null-checks.ll @@ -67,7 +67,7 @@ define i1 @g(i8 addrspace(1)* %p0, i8* %p1) gc "statepoint-example" { ; CHECK-NEXT: .byte 1 ; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .short 0 -; CHECK-NEXT: .long 2 +; CHECK-NEXT: .long 1 ; FunctionInfo[0] = diff --git a/llvm/test/CodeGen/X86/memcmp.ll b/llvm/test/CodeGen/X86/memcmp.ll index e5f1f526b46..410741ba4d3 100644 --- a/llvm/test/CodeGen/X86/memcmp.ll +++ b/llvm/test/CodeGen/X86/memcmp.ll @@ -23,8 +23,7 @@ return: ; preds = %entry ret void ; CHECK-LABEL: memcmp2: ; CHECK: movzwl -; CHECK-NEXT: movzwl -; CHECK-NEXT: cmpl +; CHECK-NEXT: cmpw ; NOBUILTIN-LABEL: memcmp2: ; NOBUILTIN: callq } @@ -42,8 +41,7 @@ bb: ; preds = %entry return: ; preds = %entry ret void ; CHECK-LABEL: memcmp2a: -; CHECK: movzwl -; CHECK-NEXT: cmpl $28527, +; CHECK: cmpw $28527, (% } diff --git a/llvm/test/CodeGen/X86/pr5145.ll b/llvm/test/CodeGen/X86/pr5145.ll index 4dee5f8d7d2..259d55b030e 100644 --- a/llvm/test/CodeGen/X86/pr5145.ll +++ b/llvm/test/CodeGen/X86/pr5145.ll @@ -5,26 +5,26 @@ define void @atomic_maxmin_i8() { ; CHECK: atomic_maxmin_i8 %1 = atomicrmw max i8* @sc8, i8 5 acquire ; CHECK: [[LABEL1:\.?LBB[0-9]+_[0-9]+]]: -; CHECK: movsbl -; CHECK: cmpl +; CHECK: cmpb +; CHECK: jg ; CHECK: lock cmpxchgb ; CHECK: jne [[LABEL1]] %2 = atomicrmw min i8* @sc8, i8 6 acquire ; CHECK: [[LABEL3:\.?LBB[0-9]+_[0-9]+]]: -; CHECK: movsbl -; CHECK: cmpl +; CHECK: cmpb +; CHECK: jl ; CHECK: lock cmpxchgb ; CHECK: jne [[LABEL3]] %3 = atomicrmw umax i8* @sc8, i8 7 acquire ; CHECK: [[LABEL5:\.?LBB[0-9]+_[0-9]+]]: -; CHECK: movzbl -; CHECK: cmpl +; CHECK: cmpb +; CHECK: ja ; CHECK: lock cmpxchgb ; CHECK: jne [[LABEL5]] %4 = atomicrmw umin i8* @sc8, i8 8 acquire ; CHECK: [[LABEL7:\.?LBB[0-9]+_[0-9]+]]: -; CHECK: movzbl -; CHECK: cmpl +; CHECK: cmpb +; CHECK: jb ; CHECK: lock cmpxchgb ; CHECK: jne [[LABEL7]] ret void diff --git a/llvm/test/CodeGen/X86/x86-shrink-wrapping.ll b/llvm/test/CodeGen/X86/x86-shrink-wrapping.ll index 5b6e773fe5d..df45e14e91a 100644 --- a/llvm/test/CodeGen/X86/x86-shrink-wrapping.ll +++ b/llvm/test/CodeGen/X86/x86-shrink-wrapping.ll @@ -520,8 +520,7 @@ declare hidden fastcc %struct.temp_slot* @find_temp_slot_from_address(%struct.rt ; CHECK: testq %rdi, %rdi ; CHECK-NEXT: je [[CLEANUP:LBB[0-9_]+]] ; -; CHECK: movzwl (%rdi), [[BF_LOAD:%e[a-z]+]] -; CHECK-NEXT: cmpl $66, [[BF_LOAD]] +; CHECK: cmpw $66, (%rdi) ; CHECK-NEXT: jne [[CLEANUP]] ; ; CHECK: movq 8(%rdi), %rdi |