xref: /llvm-project/llvm/test/MC/LoongArch/Basic/Integer/crc.s (revision 7898587e948cc24af6e22f86c921949169f4f87b)
1## Test valid CRC check instructions.
2
3# RUN: llvm-mc %s --triple=loongarch64 --show-encoding \
4# RUN:     | FileCheck --check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s
5# RUN: llvm-mc %s --triple=loongarch64 --filetype=obj | llvm-objdump -d - \
6# RUN:     | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s
7
8# CHECK-ASM-AND-OBJ: crc.w.b.w $s1, $a3, $tp
9# CHECK-ASM: encoding: [0xf8,0x08,0x24,0x00]
10crc.w.b.w $s1, $a3, $tp
11
12# CHECK-ASM-AND-OBJ: crc.w.h.w $s8, $a6, $t6
13# CHECK-ASM: encoding: [0x5f,0xc9,0x24,0x00]
14crc.w.h.w $s8, $a6, $t6
15
16# CHECK-ASM-AND-OBJ: crc.w.w.w $s5, $a2, $a6
17# CHECK-ASM: encoding: [0xdc,0x28,0x25,0x00]
18crc.w.w.w $s5, $a2, $a6
19
20# CHECK-ASM-AND-OBJ: crc.w.d.w $s5, $a7, $s8
21# CHECK-ASM: encoding: [0x7c,0xfd,0x25,0x00]
22crc.w.d.w $s5, $a7, $s8
23
24# CHECK-ASM-AND-OBJ: crcc.w.b.w $t3, $t6, $sp
25# CHECK-ASM: encoding: [0x4f,0x0e,0x26,0x00]
26crcc.w.b.w $t3, $t6, $sp
27
28# CHECK-ASM-AND-OBJ: crcc.w.h.w $r21, $s6, $t6
29# CHECK-ASM: encoding: [0xb5,0xcb,0x26,0x00]
30crcc.w.h.w $r21, $s6, $t6
31
32# CHECK-ASM-AND-OBJ: crcc.w.w.w $t5, $t2, $t1
33# CHECK-ASM: encoding: [0xd1,0x35,0x27,0x00]
34crcc.w.w.w $t5, $t2, $t1
35
36# CHECK-ASM-AND-OBJ: crcc.w.d.w $s7, $r21, $s4
37# CHECK-ASM: encoding: [0xbe,0xee,0x27,0x00]
38crcc.w.d.w $s7, $r21, $s4
39
40