Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
FileCheck-ize some tests in test/CodeGen/X86/
Patch by Jorge Gorbe! Differential Revision: https://reviews.llvm.org/D29807 llvm-svn: 295386
- Loading branch information
Showing
6 changed files
with
55 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
; RUN: llc < %s -march=x86 | \ | ||
; RUN: not grep ".byte[[:space:]]*true" | ||
; RUN: llc < %s -march=x86 | FileCheck %s | ||
|
||
@X = global i1 true ; <i1*> [#uses=0] | ||
@X = global i1 true | ||
; CHECK-NOT: .byte true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,23 @@ | ||
; RUN: llc < %s -march=x86 | grep "(%esp" | ||
; RUN: llc < %s -march=x86 | grep "pushl %ebp" | count 1 | ||
; RUN: llc < %s -march=x86 | grep "popl %ebp" | count 1 | ||
; RUN: llc < %s -march=x86 | FileCheck %s | ||
|
||
declare i8* @llvm.returnaddress(i32) | ||
|
||
declare i8* @llvm.frameaddress(i32) | ||
|
||
define i8* @test1() { | ||
%X = call i8* @llvm.returnaddress( i32 0 ) ; <i8*> [#uses=1] | ||
ret i8* %X | ||
; CHECK-LABEL: test1: | ||
entry: | ||
%X = call i8* @llvm.returnaddress( i32 0 ) | ||
ret i8* %X | ||
; CHECK: movl {{.*}}(%esp), %eax | ||
} | ||
|
||
define i8* @test2() { | ||
%X = call i8* @llvm.frameaddress( i32 0 ) ; <i8*> [#uses=1] | ||
ret i8* %X | ||
; CHECK-LABEL: test2: | ||
entry: | ||
%X = call i8* @llvm.frameaddress( i32 0 ) | ||
ret i8* %X | ||
; CHECK: pushl %ebp | ||
; CHECK: popl %ebp | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,10 @@ | ||
; RUN: llc < %s -march=x86 | grep -i ESP | not grep sub | ||
; RUN: llc < %s -march=x86 | FileCheck %s | ||
|
||
target triple = "i686-unknown-unknown" | ||
|
||
define i32 @test(i32 %X) { | ||
ret i32 %X | ||
; CHECK-LABEL: test: | ||
entry: | ||
ret i32 %X | ||
; CHECK-NOT: subl %esp | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
; RUN: llc < %s -march=x86 | not grep 18446744073709551612 | ||
; RUN: llc < %s -march=x86 | FileCheck %s | ||
|
||
@A = external global i32 ; <i32*> [#uses=1] | ||
@Y = global i32* getelementptr (i32, i32* @A, i32 -1) ; <i32**> [#uses=0] | ||
; CHECK-NOT: 18446744073709551612 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,29 @@ | ||
; RUN: llc < %s -march=x86 -mcpu=generic | \ | ||
; RUN: grep shld | count 1 | ||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | ||
; RUN: llc < %s -march=x86 -mcpu=generic | FileCheck %s | ||
; | ||
; Check that the isel does not fold the shld, which already folds a load | ||
; and has two uses, into a store. | ||
|
||
@A = external global i32 ; <i32*> [#uses=2] | ||
@A = external global i32 | ||
|
||
define i32 @test5(i32 %B, i8 %C) { | ||
%tmp.1 = load i32, i32* @A ; <i32> [#uses=1] | ||
%shift.upgrd.1 = zext i8 %C to i32 ; <i32> [#uses=1] | ||
%tmp.2 = shl i32 %tmp.1, %shift.upgrd.1 ; <i32> [#uses=1] | ||
%tmp.3 = sub i8 32, %C ; <i8> [#uses=1] | ||
%shift.upgrd.2 = zext i8 %tmp.3 to i32 ; <i32> [#uses=1] | ||
%tmp.4 = lshr i32 %B, %shift.upgrd.2 ; <i32> [#uses=1] | ||
%tmp.5 = or i32 %tmp.4, %tmp.2 ; <i32> [#uses=2] | ||
store i32 %tmp.5, i32* @A | ||
ret i32 %tmp.5 | ||
; CHECK-LABEL: test5: | ||
; CHECK: # BB#0: | ||
; CHECK-NEXT: movb {{[0-9]+}}(%esp), %cl | ||
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %edx | ||
; CHECK-NEXT: movl A, %eax | ||
; CHECK-NEXT: shldl %cl, %edx, %eax | ||
; CHECK-NEXT: movl %eax, A | ||
; CHECK-NEXT: retl | ||
entry: | ||
%tmp.1 = load i32, i32* @A | ||
%shift.upgrd.1 = zext i8 %C to i32 | ||
%tmp.2 = shl i32 %tmp.1, %shift.upgrd.1 | ||
%tmp.3 = sub i8 32, %C | ||
%shift.upgrd.2 = zext i8 %tmp.3 to i32 | ||
%tmp.4 = lshr i32 %B, %shift.upgrd.2 | ||
%tmp.5 = or i32 %tmp.4, %tmp.2 | ||
store i32 %tmp.5, i32* @A | ||
ret i32 %tmp.5 | ||
} | ||
|