87 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \3; RUN: | FileCheck -check-prefix=RV32 %s4; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \5; RUN: | FileCheck -check-prefix=RV64 %s6 7define void @test1(ptr %a, ptr %b) nounwind {8; RV32-LABEL: test1:9; RV32: # %bb.0: # %entry10; RV32-NEXT: lw a1, 0(a1)11; RV32-NEXT: lui a2, 52428812; RV32-NEXT: xor a1, a1, a213; RV32-NEXT: sw a1, 0(a0)14; RV32-NEXT: ret15;16; RV64-LABEL: test1:17; RV64: # %bb.0: # %entry18; RV64-NEXT: lw a1, 0(a1)19; RV64-NEXT: lui a2, 52428820; RV64-NEXT: xor a1, a1, a221; RV64-NEXT: sw a1, 0(a0)22; RV64-NEXT: ret23entry:24 %0 = load float, ptr %b25 %neg = fneg float %026 store float %neg, ptr %a27 ret void28}29 30define void @test2(ptr %a, ptr %b) nounwind {31; RV32-LABEL: test2:32; RV32: # %bb.0: # %entry33; RV32-NEXT: lw a2, 4(a1)34; RV32-NEXT: lw a1, 0(a1)35; RV32-NEXT: lui a3, 52428836; RV32-NEXT: xor a2, a2, a337; RV32-NEXT: sw a1, 0(a0)38; RV32-NEXT: sw a2, 4(a0)39; RV32-NEXT: ret40;41; RV64-LABEL: test2:42; RV64: # %bb.0: # %entry43; RV64-NEXT: ld a1, 0(a1)44; RV64-NEXT: li a2, -145; RV64-NEXT: slli a2, a2, 6346; RV64-NEXT: xor a1, a1, a247; RV64-NEXT: sd a1, 0(a0)48; RV64-NEXT: ret49entry:50 %0 = load double, ptr %b51 %neg = fneg double %052 store double %neg, ptr %a53 ret void54}55 56define void @test3(ptr %a, ptr %b) nounwind {57; RV32-LABEL: test3:58; RV32: # %bb.0: # %entry59; RV32-NEXT: lw a2, 0(a1)60; RV32-NEXT: lw a3, 12(a1)61; RV32-NEXT: lw a4, 4(a1)62; RV32-NEXT: lw a1, 8(a1)63; RV32-NEXT: lui a5, 52428864; RV32-NEXT: xor a3, a3, a565; RV32-NEXT: sw a2, 0(a0)66; RV32-NEXT: sw a4, 4(a0)67; RV32-NEXT: sw a1, 8(a0)68; RV32-NEXT: sw a3, 12(a0)69; RV32-NEXT: ret70;71; RV64-LABEL: test3:72; RV64: # %bb.0: # %entry73; RV64-NEXT: ld a2, 8(a1)74; RV64-NEXT: ld a1, 0(a1)75; RV64-NEXT: li a3, -176; RV64-NEXT: slli a3, a3, 6377; RV64-NEXT: xor a2, a2, a378; RV64-NEXT: sd a1, 0(a0)79; RV64-NEXT: sd a2, 8(a0)80; RV64-NEXT: ret81entry:82 %0 = load fp128, ptr %b83 %neg = fneg fp128 %084 store fp128 %neg, ptr %a85 ret void86}87