2014-12-07 20:18:57 +08: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-08 01:17:38 +08:00
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// SMEM Patterns
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
2015-01-16 02:43:06 +08:00
|
|
|
let Predicates = [isVI] in {
|
|
|
|
|
2015-01-28 01:24:58 +08:00
|
|
|
// 1. Offset as 20bit DWORD immediate
|
2014-12-08 01:17:38 +08:00
|
|
|
def : Pat <
|
|
|
|
(SIload_constant v4i32:$sbase, IMM20bit:$offset),
|
|
|
|
(S_BUFFER_LOAD_DWORD_IMM $sbase, (as_i32imm $offset))
|
|
|
|
>;
|
|
|
|
|
2014-12-07 20:18:57 +08:00
|
|
|
} // End Predicates = [isVI]
|