OLD | NEW |
1 //===-- R600Instructions.td - R600 Instruction defs -------*- tablegen -*-===// | 1 //===-- R600Instructions.td - R600 Instruction defs -------*- tablegen -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // R600 Tablegen instruction definitions | 10 // R600 Tablegen instruction definitions |
(...skipping 1597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1608 // | 1608 // |
1609 // (0, 8) = (Input << 24) >> 24 = (Input & 0xff) >> 0 | 1609 // (0, 8) = (Input << 24) >> 24 = (Input & 0xff) >> 0 |
1610 // (8, 8) = (Input << 16) >> 24 = (Input & 0xffff) >> 8 | 1610 // (8, 8) = (Input << 16) >> 24 = (Input & 0xffff) >> 8 |
1611 // (16,8) = (Input << 8) >> 24 = (Input & 0xffffff) >> 16 | 1611 // (16,8) = (Input << 8) >> 24 = (Input & 0xffffff) >> 16 |
1612 // (24,8) = (Input << 0) >> 24 = (Input & 0xffffffff) >> 24 | 1612 // (24,8) = (Input << 0) >> 24 = (Input & 0xffffffff) >> 24 |
1613 def BFE_UINT_eg : R600_3OP <0x4, "BFE_UINT", | 1613 def BFE_UINT_eg : R600_3OP <0x4, "BFE_UINT", |
1614 [(set i32:$dst, (int_AMDIL_bit_extract_u32 i32:$src0, i32:$src1, | 1614 [(set i32:$dst, (int_AMDIL_bit_extract_u32 i32:$src0, i32:$src1, |
1615 i32:$src2))], | 1615 i32:$src2))], |
1616 VecALU | 1616 VecALU |
1617 >; | 1617 >; |
1618 def : BFEPattern <BFE_UINT_eg>; | |
1619 | 1618 |
1620 def BFI_INT_eg : R600_3OP <0x06, "BFI_INT", [], VecALU>; | 1619 def BFI_INT_eg : R600_3OP <0x06, "BFI_INT", [], VecALU>; |
1621 defm : BFIPatterns <BFI_INT_eg>; | 1620 defm : BFIPatterns <BFI_INT_eg>; |
1622 | 1621 |
1623 def BIT_ALIGN_INT_eg : R600_3OP <0xC, "BIT_ALIGN_INT", | 1622 def BIT_ALIGN_INT_eg : R600_3OP <0xC, "BIT_ALIGN_INT", |
1624 [(set i32:$dst, (AMDGPUbitalign i32:$src0, i32:$src1, i32:$src2))], | 1623 [(set i32:$dst, (AMDGPUbitalign i32:$src0, i32:$src1, i32:$src2))], |
1625 VecALU | 1624 VecALU |
1626 >; | 1625 >; |
1627 | 1626 |
1628 def MULADD_eg : MULADD_Common<0x14>; | 1627 def MULADD_eg : MULADD_Common<0x14>; |
(...skipping 799 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2428 | 2427 |
2429 def : BitConvert <i32, f32, R600_Reg32>; | 2428 def : BitConvert <i32, f32, R600_Reg32>; |
2430 def : BitConvert <f32, i32, R600_Reg32>; | 2429 def : BitConvert <f32, i32, R600_Reg32>; |
2431 def : BitConvert <v4f32, v4i32, R600_Reg128>; | 2430 def : BitConvert <v4f32, v4i32, R600_Reg128>; |
2432 def : BitConvert <v4i32, v4f32, R600_Reg128>; | 2431 def : BitConvert <v4i32, v4f32, R600_Reg128>; |
2433 | 2432 |
2434 // DWORDADDR pattern | 2433 // DWORDADDR pattern |
2435 def : DwordAddrPat <i32, R600_Reg32>; | 2434 def : DwordAddrPat <i32, R600_Reg32>; |
2436 | 2435 |
2437 } // End isR600toCayman Predicate | 2436 } // End isR600toCayman Predicate |
OLD | NEW |