1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv64 -mattr=+m -global-isel -verify-machineinstrs < %s \
3 ; RUN: | FileCheck %s --check-prefix=RV64IM
5 define i64 @sll_i64(i64 %a, i64 %b) {
6 ; RV64IM-LABEL: sll_i64:
7 ; RV64IM: # %bb.0: # %entry
8 ; RV64IM-NEXT: sll a0, a0, a1
15 define i64 @slli_i64(i64 %a) {
16 ; RV64IM-LABEL: slli_i64:
17 ; RV64IM: # %bb.0: # %entry
18 ; RV64IM-NEXT: slli a0, a0, 33
25 define i64 @sra_i64(i64 %a, i64 %b) {
26 ; RV64IM-LABEL: sra_i64:
27 ; RV64IM: # %bb.0: # %entry
28 ; RV64IM-NEXT: sra a0, a0, a1
35 define i64 @srai_i64(i64 %a) {
36 ; RV64IM-LABEL: srai_i64:
37 ; RV64IM: # %bb.0: # %entry
38 ; RV64IM-NEXT: srai a0, a0, 47
45 define i64 @srl_i64(i64 %a, i64 %b) {
46 ; RV64IM-LABEL: srl_i64:
47 ; RV64IM: # %bb.0: # %entry
48 ; RV64IM-NEXT: srl a0, a0, a1
55 define i64 @srli_i64(i64 %a, i64 %b) {
56 ; RV64IM-LABEL: srli_i64:
57 ; RV64IM: # %bb.0: # %entry
58 ; RV64IM-NEXT: srli a0, a0, 55
65 define i64 @sdiv_i64(i64 %a, i64 %b) {
66 ; RV64IM-LABEL: sdiv_i64:
67 ; RV64IM: # %bb.0: # %entry
68 ; RV64IM-NEXT: div a0, a0, a1
75 define i64 @srem_i64(i64 %a, i64 %b) {
76 ; RV64IM-LABEL: srem_i64:
77 ; RV64IM: # %bb.0: # %entry
78 ; RV64IM-NEXT: rem a0, a0, a1
85 define i64 @udiv_i64(i64 %a, i64 %b) {
86 ; RV64IM-LABEL: udiv_i64:
87 ; RV64IM: # %bb.0: # %entry
88 ; RV64IM-NEXT: divu a0, a0, a1
95 define i64 @urem_i64(i64 %a, i64 %b) {
96 ; RV64IM-LABEL: urem_i64:
97 ; RV64IM: # %bb.0: # %entry
98 ; RV64IM-NEXT: remu a0, a0, a1
105 define i64 @zext_nneg_i32_i64(i32 %a) {
106 ; RV64IM-LABEL: zext_nneg_i32_i64:
107 ; RV64IM: # %bb.0: # %entry
108 ; RV64IM-NEXT: sext.w a0, a0
111 %b = zext nneg i32 %a to i64