xref: /llvm-project/llvm/test/CodeGen/RISCV/pr64503.ll (revision e6b85c30276d8e35ed302b2defd7d17637d6edb3)
17cc61541SCraig Topper; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
27cc61541SCraig Topper; RUN: llc < %s -mtriple=riscv32 | FileCheck %s
37cc61541SCraig Topper
47cc61541SCraig Topperdefine i1 @f(i64 %LGV1) {
57cc61541SCraig Topper; CHECK-LABEL: f:
67cc61541SCraig Topper; CHECK:       # %bb.0:
7*e6b85c30SSimon Pilgrim; CHECK-NEXT:    li a0, 1
87cc61541SCraig Topper; CHECK-NEXT:    ret
97cc61541SCraig Topper  %B1 = xor i64 %LGV1, %LGV1
107cc61541SCraig Topper  %B2 = srem i64 1, %B1
117cc61541SCraig Topper  %B5 = lshr i64 1, %B2
127cc61541SCraig Topper  %C4 = icmp ule i64 %LGV1, %B5
137cc61541SCraig Topper  ret i1 %C4
147cc61541SCraig Topper}
157cc61541SCraig Topper
167cc61541SCraig Topperdefine i64 @g(ptr %A, i64 %0) {
177cc61541SCraig Topper; CHECK-LABEL: g:
187cc61541SCraig Topper; CHECK:       # %bb.0:
19*e6b85c30SSimon Pilgrim; CHECK-NEXT:    li a0, 1
207cc61541SCraig Topper; CHECK-NEXT:    sb a0, 0(zero)
217cc61541SCraig Topper; CHECK-NEXT:    ret
227cc61541SCraig Topper  store i64 poison, ptr %A, align 4
237cc61541SCraig Topper  %LGV1 = load i64, ptr %A, align 4
247cc61541SCraig Topper  %B1 = ashr i64 1, %LGV1
257cc61541SCraig Topper  %C = icmp sle i64 %0, %B1
267cc61541SCraig Topper  store i1 %C, ptr null, align 1
277cc61541SCraig Topper  ret i64 %LGV1
287cc61541SCraig Topper}
29