diff options
author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2014-10-17 01:41:22 +0000 |
---|---|---|
committer | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2014-10-17 01:41:22 +0000 |
commit | 32e9c6465b3beab8ee95f78eb75c4d159fb060b3 (patch) | |
tree | 9211d7f11cab8ab2ee9e1593e079b184e093f326 /llvm/test/CodeGen/PowerPC/unaligned.ll | |
parent | 5b94115d5054978d59de28422c5f304b105ab03a (diff) | |
download | bcm5719-llvm-32e9c6465b3beab8ee95f78eb75c4d159fb060b3.tar.gz bcm5719-llvm-32e9c6465b3beab8ee95f78eb75c4d159fb060b3.zip |
[PPC] Adjust some PowerPC tests to account for presence/absence of VSX
Patch by Bill Seurer; committed on his behalf.
These test cases generate slightly different code sequences when VSX
is activated and thus fail. The update turns off VSX explicitly for
the existing checks and then adds a second set of checks for most of
them that test the VSX instruction output.
llvm-svn: 220019
Diffstat (limited to 'llvm/test/CodeGen/PowerPC/unaligned.ll')
-rw-r--r-- | llvm/test/CodeGen/PowerPC/unaligned.ll | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/PowerPC/unaligned.ll b/llvm/test/CodeGen/PowerPC/unaligned.ll index d469c62f2f0..0c59516f118 100644 --- a/llvm/test/CodeGen/PowerPC/unaligned.ll +++ b/llvm/test/CodeGen/PowerPC/unaligned.ll @@ -1,4 +1,6 @@ -; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s +; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 -mattr=-vsx | FileCheck %s +target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128-n32" +; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 -mattr=+vsx | FileCheck -check-prefix=CHECK-VSX %s target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128-n32" define void @foo1(i16* %p, i16* %r) nounwind { @@ -10,6 +12,10 @@ entry: ; CHECK: @foo1 ; CHECK: lhz ; CHECK: sth + +; CHECK-VSX: @foo1 +; CHECK-VSX: lhz +; CHECK-VSX: sth } define void @foo2(i32* %p, i32* %r) nounwind { @@ -21,6 +27,10 @@ entry: ; CHECK: @foo2 ; CHECK: lwz ; CHECK: stw + +; CHECK-VSX: @foo2 +; CHECK-VSX: lwz +; CHECK-VSX: stw } define void @foo3(i64* %p, i64* %r) nounwind { @@ -32,6 +42,10 @@ entry: ; CHECK: @foo3 ; CHECK: ld ; CHECK: std + +; CHECK-VSX: @foo3 +; CHECK-VSX: ld +; CHECK-VSX: std } define void @foo4(float* %p, float* %r) nounwind { @@ -43,6 +57,10 @@ entry: ; CHECK: @foo4 ; CHECK: lfs ; CHECK: stfs + +; CHECK-VSX: @foo4 +; CHECK-VSX: lfs +; CHECK-VSX: stfs } define void @foo5(double* %p, double* %r) nounwind { @@ -54,6 +72,10 @@ entry: ; CHECK: @foo5 ; CHECK: lfd ; CHECK: stfd + +; CHECK-VSX: @foo5 +; CHECK-VSX: lxsdx +; CHECK-VSX: stxsdx } define void @foo6(<4 x float>* %p, <4 x float>* %r) nounwind { @@ -69,5 +91,11 @@ entry: ; CHECK-DAG: ld ; CHECK-DAG: stdx ; CHECK: stdx + +; CHECK-VSX: @foo6 +; CHECK-VSX-DAG: ld +; CHECK-VSX-DAG: ld +; CHECK-VSX-DAG: stdx +; CHECK-VSX: stdx } |