[RISCV] Fixed setting predicates for compressed instructions.

Summary:
Fixed setting predicates for compressed instructions.
Some instructions were being generated with C extension
enabled only, without proper checks for the other
required extensions like F, D and 32 and 64-bit target checks.
Affected instructions:
C_FLD, C_FLW, C_LD, C_FSD, C_FSW, C_SD,
C_JAL, C_ADDIW, C_SUBW, C_ADDW,
C_FLDSP, C_FLWSP, C_LDSP, C_FSDSP, C_FSWSP, C_SDSP

Reviewers: asb, shiva0217

Reviewed By: asb

Subscribers: rbar, johnrusso, simoncook, jordy.potman.lists, sabuasal, niosHD, llvm-commits

Differential Revision: https://reviews.llvm.org/D42132

llvm-svn: 322876
diff --git a/llvm/test/MC/RISCV/rv32dc-valid.s b/llvm/test/MC/RISCV/rv32dc-valid.s
index b6c7bb3..507b391 100644
--- a/llvm/test/MC/RISCV/rv32dc-valid.s
+++ b/llvm/test/MC/RISCV/rv32dc-valid.s
@@ -3,17 +3,27 @@
 # RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+c,+d < %s \
 # RUN:     | llvm-objdump -mattr=+c,+d -riscv-no-aliases -d - \
 # RUN:     | FileCheck -check-prefix=CHECK-INST %s
+# RUN: not llvm-mc -triple riscv32 -mattr=+c\
+# RUN:     -riscv-no-aliases -show-encoding < %s 2>&1 \
+# RUN: | FileCheck -check-prefixes=CHECK-NO-EXT %s
+# RUN:     not llvm-mc -triple riscv32 \
+# RUN: -riscv-no-aliases -show-encoding < %s 2>&1 \
+# RUN:     | FileCheck -check-prefixes=CHECK-NO-EXT %s
 
 # CHECK-INST: c.fldsp  fs0, 504(sp)
 # CHECK: encoding: [0x7e,0x34]
+# CHECK-NO-EXT:  error: instruction use requires an option to be enabled
 c.fldsp  fs0, 504(sp)
 # CHECK-INST: c.fsdsp  fa7, 504(sp)
 # CHECK: encoding: [0xc6,0xbf]
+# CHECK-NO-EXT:  error: instruction use requires an option to be enabled
 c.fsdsp  fa7, 504(sp)
 
 # CHECK-INST: c.fld  fa3, 248(a5)
 # CHECK: encoding: [0xf4,0x3f]
+# CHECK-NO-EXT:  error: instruction use requires an option to be enabled
 c.fld  fa3, 248(a5)
 # CHECK-INST: c.fsd  fa2, 248(a1)
 # CHECK: encoding: [0xf0,0xbd]
+# CHECK-NO-EXT:  error: instruction use requires an option to be enabled
 c.fsd  fa2, 248(a1)