2014-12-07 12:18:57 +00:00
|
|
|
//===-- VIInstructions.td - VI Instruction Defintions ---------------------===//
|
|
|
|
//
|
|
|
|
// The LLVM Compiler Infrastructure
|
|
|
|
//
|
|
|
|
// This file is distributed under the University of Illinois Open Source
|
|
|
|
// License. See LICENSE.TXT for details.
|
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// Instruction definitions for VI and newer.
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
|
|
|
2014-12-07 17:17:38 +00:00
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// SMEM Patterns
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
2015-01-15 18:43:06 +00:00
|
|
|
let Predicates = [isVI] in {
|
|
|
|
|
2015-01-27 17:24:58 +00:00
|
|
|
// 1. Offset as 20bit DWORD immediate
|
2014-12-07 17:17:38 +00:00
|
|
|
def : Pat <
|
|
|
|
(SIload_constant v4i32:$sbase, IMM20bit:$offset),
|
|
|
|
(S_BUFFER_LOAD_DWORD_IMM $sbase, (as_i32imm $offset))
|
|
|
|
>;
|
|
|
|
|
2014-12-07 12:18:57 +00:00
|
|
|
} // End Predicates = [isVI]
|