[PATCH 1/2] R600: Fix encoding of CF_END_{EG,R600} instructions

Tom Stellard tom at stellard.net
Fri Apr 26 13:20:58 PDT 2013


From: Tom Stellard <thomas.stellard at amd.com>

The EOP bit was not being encoded.
---
 lib/Target/R600/R600Instructions.td | 1 +
 test/CodeGen/R600/cf_end.ll         | 6 ++++++
 2 files changed, 7 insertions(+)
 create mode 100644 test/CodeGen/R600/cf_end.ll

diff --git a/lib/Target/R600/R600Instructions.td b/lib/Target/R600/R600Instructions.td
index 36ac2b5..c6375a5 100644
--- a/lib/Target/R600/R600Instructions.td
+++ b/lib/Target/R600/R600Instructions.td
@@ -902,6 +902,7 @@ class CF_WORD1_EG {
   let Word1{9-8} = COND;
   let Word1{15-10} = COUNT;
   let Word1{20} = VALID_PIXEL_MODE;
+  let Word1{21} = END_OF_PROGRAM;
   let Word1{29-22} = CF_INST;
   let Word1{31} = BARRIER;
 }
diff --git a/test/CodeGen/R600/cf_end.ll b/test/CodeGen/R600/cf_end.ll
new file mode 100644
index 0000000..67d5e3e
--- /dev/null
+++ b/test/CodeGen/R600/cf_end.ll
@@ -0,0 +1,6 @@
+; RUN: llc < %s -march=r600 -mcpu=redwood --show-mc-encoding | FileCheck %s
+
+; CHECK: CF_END ; encoding: [0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x80]
+define void @eop() {
+  ret void
+}
-- 
1.8.1.5




More information about the llvm-commits mailing list