X86: Don't generate 64-bit movd after cmpneqsd in 32-bit mode (PR19059)
[oota-llvm.git] / test / CodeGen / X86 / red-zone.ll
index 60e16b05ca757a66edb5a9864a4d74f02fe7c7be..cce71f5d4cfd3d0f803f7882c005fc274c299ea7 100644 (file)
@@ -1,13 +1,25 @@
-; RUN: llvm-as < %s | llc -march=x86-64 > %t
-; RUN: not grep subq %t
-; RUN: not grep addq %t
-; RUN: grep {\\-4(%%rsp)} %t | count 2
-; RUN: llvm-as < %s | llc -march=x86-64 -disable-red-zone > %t
-; RUN: grep subq %t | count 1
-; RUN: grep addq %t | count 1
+; RUN: llc < %s -mcpu=generic -mtriple=x86_64-linux | FileCheck %s
 
+; First without noredzone.
+; CHECK-LABEL: f0:
+; CHECK: -4(%rsp)
+; CHECK: -4(%rsp)
+; CHECK: ret
 define x86_fp80 @f0(float %f) nounwind readnone {
 entry:
        %0 = fpext float %f to x86_fp80         ; <x86_fp80> [#uses=1]
        ret x86_fp80 %0
 }
+
+; Then with noredzone.
+; CHECK-LABEL: f1:
+; CHECK: subq $4, %rsp
+; CHECK: (%rsp)
+; CHECK: (%rsp)
+; CHECK: addq $4, %rsp
+; CHECK: ret
+define x86_fp80 @f1(float %f) nounwind readnone noredzone {
+entry:
+       %0 = fpext float %f to x86_fp80         ; <x86_fp80> [#uses=1]
+       ret x86_fp80 %0
+}