diff options
| author | Artem Tamazov <artem.tamazov@amd.com> | 2016-06-06 15:23:43 +0000 |
|---|---|---|
| committer | Artem Tamazov <artem.tamazov@amd.com> | 2016-06-06 15:23:43 +0000 |
| commit | 135487767b36d8a5780c5bd53a649f87471328c9 (patch) | |
| tree | 34ee8e3626a0798ba50ff9913b2d18da8c3defaa /llvm/test | |
| parent | 80dbd154fac43908c3501ab847cb2d4ff69a1359 (diff) | |
| download | bcm5719-llvm-135487767b36d8a5780c5bd53a649f87471328c9.tar.gz bcm5719-llvm-135487767b36d8a5780c5bd53a649f87471328c9.zip | |
[AMDGPU][llvm-mc] v_cndmask_b32: src2 is mandatory; do not enforce VOP2 when src2 == VCC.
Another step for unification llvm assembler/disassembler with sp3.
Besides, CodeGen output is a bit improved, thus changes in CodeGen tests.
Assembler/Disassembler tests updated/added.
Differential Revision: http://reviews.llvm.org/D20796
llvm-svn: 271900
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/AMDGPU/fceil64.ll | 3 | ||||
| -rw-r--r-- | llvm/test/CodeGen/AMDGPU/sint_to_fp.i64.ll | 2 | ||||
| -rw-r--r-- | llvm/test/MC/AMDGPU/vop2-err.s | 6 | ||||
| -rw-r--r-- | llvm/test/MC/AMDGPU/vop2.s | 7 | ||||
| -rw-r--r-- | llvm/test/MC/AMDGPU/vop3.s | 8 | ||||
| -rw-r--r-- | llvm/test/MC/Disassembler/AMDGPU/vop2_vi.txt | 3 | ||||
| -rw-r--r-- | llvm/test/MC/Disassembler/AMDGPU/vop3_vi.txt | 3 |
7 files changed, 27 insertions, 5 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/fceil64.ll b/llvm/test/CodeGen/AMDGPU/fceil64.ll index 92c39983964..fb5853b808e 100644 --- a/llvm/test/CodeGen/AMDGPU/fceil64.ll +++ b/llvm/test/CodeGen/AMDGPU/fceil64.ll @@ -25,8 +25,7 @@ declare <16 x double> @llvm.ceil.v16f64(<16 x double>) nounwind readnone ; SI-DAG: cndmask_b32 ; SI-DAG: v_cmp_lt_f64 ; SI-DAG: v_cmp_lg_f64 -; SI-DAG: s_and_b64 -; SI: v_cndmask_b32 +; SI-DAG: v_cndmask_b32 ; SI: v_cndmask_b32 ; SI: v_add_f64 ; SI: s_endpgm diff --git a/llvm/test/CodeGen/AMDGPU/sint_to_fp.i64.ll b/llvm/test/CodeGen/AMDGPU/sint_to_fp.i64.ll index 1581ce2752e..16eae1899ec 100644 --- a/llvm/test/CodeGen/AMDGPU/sint_to_fp.i64.ll +++ b/llvm/test/CodeGen/AMDGPU/sint_to_fp.i64.ll @@ -25,7 +25,7 @@ define void @s_sint_to_fp_i64_to_f32(float addrspace(1)* %out, i64 %in) #0 { ; GCN-DAG: v_cmp_lt_u64 ; GCN: v_xor_b32_e32 v{{[0-9]+}}, 0x80000000, v{{[0-9]+}} -; GCN: v_cndmask_b32_e32 [[SIGN_SEL:v[0-9]+]], +; GCN: v_cndmask_b32_e{{32|64}} [[SIGN_SEL:v[0-9]+]], ; GCN: {{buffer|flat}}_store_dword {{.*}}[[SIGN_SEL]] define void @v_sint_to_fp_i64_to_f32(float addrspace(1)* %out, i64 addrspace(1)* %in) #0 { %tid = call i32 @llvm.amdgcn.workitem.id.x() diff --git a/llvm/test/MC/AMDGPU/vop2-err.s b/llvm/test/MC/AMDGPU/vop2-err.s index 8d282f9bf7e..19f7274088d 100644 --- a/llvm/test/MC/AMDGPU/vop2-err.s +++ b/llvm/test/MC/AMDGPU/vop2-err.s @@ -8,6 +8,9 @@ v_mul_i32_i24 v1, v2, 100 // CHECK: error: invalid operand for instruction +v_cndmask_b32 v1, v2, v3 +// CHECK: error: too few operands for instruction + //===----------------------------------------------------------------------===// // _e32 checks //===----------------------------------------------------------------------===// @@ -20,6 +23,9 @@ v_mul_i32_i24_e32 v1, v2, 100 v_mul_i32_i24_e32 v1, v2, s3 // CHECK: error: invalid operand for instruction +v_cndmask_b32_e32 v1, v2, v3, s[0:1] +// CHECK: error: invalid operand for instruction + //===----------------------------------------------------------------------===// // _e64 checks //===----------------------------------------------------------------------===// diff --git a/llvm/test/MC/AMDGPU/vop2.s b/llvm/test/MC/AMDGPU/vop2.s index f9d4ab3710f..0cb464ac949 100644 --- a/llvm/test/MC/AMDGPU/vop2.s +++ b/llvm/test/MC/AMDGPU/vop2.s @@ -98,8 +98,11 @@ v_mul_i32_i24 v1, 3, s3 // Instructions //===----------------------------------------------------------------------===// -// GCN: v_cndmask_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x00] -v_cndmask_b32 v1, v2, v3 +// GCN: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x00] +v_cndmask_b32 v1, v2, v3, vcc + +// GCN: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x00] +v_cndmask_b32_e32 v1, v2, v3, vcc // SICI: v_readlane_b32 s1, v2, s3 ; encoding: [0x02,0x07,0x02,0x02] // VI: v_readlane_b32 s1, v2, s3 ; encoding: [0x01,0x00,0x89,0xd2,0x02,0x07,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/vop3.s b/llvm/test/MC/AMDGPU/vop3.s index e13dde2638b..86362878ec6 100644 --- a/llvm/test/MC/AMDGPU/vop3.s +++ b/llvm/test/MC/AMDGPU/vop3.s @@ -202,6 +202,14 @@ v_cndmask_b32 v1, v3, v5, s[4:5] // SICI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd2,0x03,0x0b,0x12,0x00] // VI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0x12,0x00] +v_cndmask_b32_e64 v1, v3, v5, s[4:5] +// SICI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd2,0x03,0x0b,0x12,0x00] +// VI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0x12,0x00] + +v_cndmask_b32_e64 v1, v3, v5, vcc +// SICI: v_cndmask_b32_e64 v1, v3, v5, vcc ; encoding: [0x01,0x00,0x00,0xd2,0x03,0x0b,0xaa,0x01] +// VI: v_cndmask_b32_e64 v1, v3, v5, vcc ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0xaa,0x01] + //TODO: readlane, writelane v_add_f32 v1, v3, s5 diff --git a/llvm/test/MC/Disassembler/AMDGPU/vop2_vi.txt b/llvm/test/MC/Disassembler/AMDGPU/vop2_vi.txt index c302c68c64e..b1c6c800572 100644 --- a/llvm/test/MC/Disassembler/AMDGPU/vop2_vi.txt +++ b/llvm/test/MC/Disassembler/AMDGPU/vop2_vi.txt @@ -1,5 +1,8 @@ # RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI +# VI: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x00] +0x02 0x07 0x02 0x00 + # VI: v_readlane_b32 s1, v2, s3 ; encoding: [0x01,0x00,0x89,0xd2,0x02,0x07,0x00,0x00] 0x01 0x00 0x89 0xd2 0x02 0x07 0x00 0x00 diff --git a/llvm/test/MC/Disassembler/AMDGPU/vop3_vi.txt b/llvm/test/MC/Disassembler/AMDGPU/vop3_vi.txt index 13bba2b24e4..d28a231edf2 100644 --- a/llvm/test/MC/Disassembler/AMDGPU/vop3_vi.txt +++ b/llvm/test/MC/Disassembler/AMDGPU/vop3_vi.txt @@ -111,6 +111,9 @@ # VI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0x12,0x00] 0x01 0x00 0x00 0xd1 0x03 0x0b 0x12 0x00 +# VI: v_cndmask_b32_e64 v1, v3, v5, vcc ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0xaa,0x01] +0x01 0x00 0x00 0xd1 0x03 0x0b 0xaa 0x01 + # VI: v_add_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x01,0xd1,0x03,0x0b,0x00,0x00] 0x01 0x00 0x01 0xd1 0x03 0x0b 0x00 0x00 |

