From 87982a1e9b42b18e803a2dda3a79ff665b7b2243 Mon Sep 17 00:00:00 2001 From: Bill Schmidt Date: Sun, 19 Oct 2014 20:48:47 +0000 Subject: [PATCH] [PowerPC] Temporarily disable VSX for PowerPC fast-isel tests Patch by Bill Seurer; some comment formatting changes by me. There are a few PowerPC test cases for FastISel support that currently fail with VSX support enabled. The temporary workaround under discussion in http://reviews.llvm.org/D5362 helps, but the tests still fail because they specify -fast-isel-abort, and the VSX workaround punts back to SelectionDAG. We have plans to fix FastISel permanently for VSX, but until that's in place these tests are preventing us from enabling VSX by default. Therefore we are adding -mattr=-vsx to these tests until the full support is ready. llvm-svn: 220172 --- llvm/test/CodeGen/PowerPC/fast-isel-call.ll | 6 +++++- llvm/test/CodeGen/PowerPC/fast-isel-cmp-imm.ll | 7 +++++-- llvm/test/CodeGen/PowerPC/fast-isel-conversion.ll | 10 +++++++--- llvm/test/CodeGen/PowerPC/fast-isel-load-store.ll | 6 +++++- llvm/test/CodeGen/PowerPC/fast-isel-ret.ll | 6 +++++- 5 files changed, 27 insertions(+), 8 deletions(-) diff --git a/llvm/test/CodeGen/PowerPC/fast-isel-call.ll b/llvm/test/CodeGen/PowerPC/fast-isel-call.ll index 223090523c4d..b2cc75e26114 100644 --- a/llvm/test/CodeGen/PowerPC/fast-isel-call.ll +++ b/llvm/test/CodeGen/PowerPC/fast-isel-call.ll @@ -1,4 +1,8 @@ -; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=ELF64 +; FIXME: FastISel currently returns false if it hits code that uses VSX +; registers and with -fast-isel-abort turned on the test case will then fail. +; When fastisel better supports VSX fix up this test case. +; +; RUN: llc < %s -O0 -verify-machineinstrs -mattr=-vsx -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=ELF64 define i32 @t1(i8 signext %a) nounwind { %1 = sext i8 %a to i32 diff --git a/llvm/test/CodeGen/PowerPC/fast-isel-cmp-imm.ll b/llvm/test/CodeGen/PowerPC/fast-isel-cmp-imm.ll index 33f7a79783cc..c1f6b6327a44 100644 --- a/llvm/test/CodeGen/PowerPC/fast-isel-cmp-imm.ll +++ b/llvm/test/CodeGen/PowerPC/fast-isel-cmp-imm.ll @@ -1,5 +1,8 @@ -; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=ELF64 - +; FIXME: FastISel currently returns false if it hits code that uses VSX +; registers and with -fast-isel-abort turned on the test case will then fail. +; When fastisel better supports VSX fix up this test case. +; +; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 -mattr=-vsx | FileCheck %s --check-prefix=ELF64 define void @t1a(float %a) uwtable ssp { entry: ; ELF64: t1a diff --git a/llvm/test/CodeGen/PowerPC/fast-isel-conversion.ll b/llvm/test/CodeGen/PowerPC/fast-isel-conversion.ll index 71611060ed7a..b0e29c1274a2 100644 --- a/llvm/test/CodeGen/PowerPC/fast-isel-conversion.ll +++ b/llvm/test/CodeGen/PowerPC/fast-isel-conversion.ll @@ -1,6 +1,10 @@ -; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=ELF64 -; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 | FileCheck %s --check-prefix=ELF64LE -; RUN: llc < %s -O0 -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=970 | FileCheck %s --check-prefix=PPC970 +; FIXME: FastISel currently returns false if it hits code that uses VSX +; registers and with -fast-isel-abort turned on the test case will then fail. +; When fastisel better supports VSX fix up this test case. +; +; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 -mattr=-vsx | FileCheck %s --check-prefix=ELF64 +; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 -mattr=-vsx | FileCheck %s --check-prefix=ELF64LE +; RUN: llc < %s -O0 -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=970 -mattr=-vsx | FileCheck %s --check-prefix=PPC970 ;; Tests for 970 don't use -fast-isel-abort because we intentionally punt ;; to SelectionDAG in some cases. diff --git a/llvm/test/CodeGen/PowerPC/fast-isel-load-store.ll b/llvm/test/CodeGen/PowerPC/fast-isel-load-store.ll index 026b15fe5e4e..ef702e21d6a1 100644 --- a/llvm/test/CodeGen/PowerPC/fast-isel-load-store.ll +++ b/llvm/test/CodeGen/PowerPC/fast-isel-load-store.ll @@ -1,4 +1,8 @@ -; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=ELF64 +; FIXME: FastISel currently returns false if it hits code that uses VSX +; registers and with -fast-isel-abort turned on the test case will then fail. +; When fastisel better supports VSX fix up this test case. +; +; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel -fast-isel-abort -mattr=-vsx -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=ELF64 ; This test verifies that load/store instructions are properly generated, ; and that they pass MI verification. diff --git a/llvm/test/CodeGen/PowerPC/fast-isel-ret.ll b/llvm/test/CodeGen/PowerPC/fast-isel-ret.ll index f82de70c9286..ae34fbf7bfe1 100644 --- a/llvm/test/CodeGen/PowerPC/fast-isel-ret.ll +++ b/llvm/test/CodeGen/PowerPC/fast-isel-ret.ll @@ -1,4 +1,8 @@ -; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=ELF64 +; FIXME: FastISel currently returns false if it hits code that uses VSX +; registers and with -fast-isel-abort turned on the test case will then fail. +; When fastisel better supports VSX fix up this test case. +; +; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 -mattr=-vsx | FileCheck %s --check-prefix=ELF64 define zeroext i1 @rettrue() nounwind uwtable ssp { entry: