[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / RISCV / rv32zbc-intrinsic.ll
blob97ba9da5e0b040df9c3a306013823363cd96e752
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv32 -mattr=+experimental-b -verify-machineinstrs < %s \
3 ; RUN:   | FileCheck %s -check-prefix=RV32B
4 ; RUN: llc -mtriple=riscv32 -mattr=+experimental-zbc -verify-machineinstrs < %s \
5 ; RUN:   | FileCheck %s -check-prefix=RV32BC
7 declare i32 @llvm.riscv.clmul.i32(i32 %a, i32 %b)
9 define i32 @clmul32(i32 %a, i32 %b) nounwind {
10 ; RV32B-LABEL: clmul32:
11 ; RV32B:       # %bb.0:
12 ; RV32B-NEXT:    clmul a0, a0, a1
13 ; RV32B-NEXT:    ret
15 ; RV32BC-LABEL: clmul32:
16 ; RV32BC:       # %bb.0:
17 ; RV32BC-NEXT:    clmul a0, a0, a1
18 ; RV32BC-NEXT:    ret
19   %tmp = call i32 @llvm.riscv.clmul.i32(i32 %a, i32 %b)
20  ret i32 %tmp
23 declare i32 @llvm.riscv.clmulh.i32(i32 %a, i32 %b)
25 define i32 @clmul32h(i32 %a, i32 %b) nounwind {
26 ; RV32B-LABEL: clmul32h:
27 ; RV32B:       # %bb.0:
28 ; RV32B-NEXT:    clmulh a0, a0, a1
29 ; RV32B-NEXT:    ret
31 ; RV32BC-LABEL: clmul32h:
32 ; RV32BC:       # %bb.0:
33 ; RV32BC-NEXT:    clmulh a0, a0, a1
34 ; RV32BC-NEXT:    ret
35   %tmp = call i32 @llvm.riscv.clmulh.i32(i32 %a, i32 %b)
36  ret i32 %tmp
39 declare i32 @llvm.riscv.clmulr.i32(i32 %a, i32 %b)
41 define i32 @clmul32r(i32 %a, i32 %b) nounwind {
42 ; RV32B-LABEL: clmul32r:
43 ; RV32B:       # %bb.0:
44 ; RV32B-NEXT:    clmulr a0, a0, a1
45 ; RV32B-NEXT:    ret
47 ; RV32BC-LABEL: clmul32r:
48 ; RV32BC:       # %bb.0:
49 ; RV32BC-NEXT:    clmulr a0, a0, a1
50 ; RV32BC-NEXT:    ret
51   %tmp = call i32 @llvm.riscv.clmulr.i32(i32 %a, i32 %b)
52  ret i32 %tmp