1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
2 ; RUN: llc --mtriple=loongarch64 --mattr=+lasx < %s | FileCheck %s
4 define void @fdiv_v8f32(ptr %res, ptr %a0, ptr %a1) nounwind {
5 ; CHECK-LABEL: fdiv_v8f32:
6 ; CHECK: # %bb.0: # %entry
7 ; CHECK-NEXT: xvld $xr0, $a1, 0
8 ; CHECK-NEXT: xvld $xr1, $a2, 0
9 ; CHECK-NEXT: xvfdiv.s $xr0, $xr0, $xr1
10 ; CHECK-NEXT: xvst $xr0, $a0, 0
13 %v0 = load <8 x float>, ptr %a0
14 %v1 = load <8 x float>, ptr %a1
15 %v2 = fdiv <8 x float> %v0, %v1
16 store <8 x float> %v2, ptr %res
20 define void @fdiv_v4f64(ptr %res, ptr %a0, ptr %a1) nounwind {
21 ; CHECK-LABEL: fdiv_v4f64:
22 ; CHECK: # %bb.0: # %entry
23 ; CHECK-NEXT: xvld $xr0, $a1, 0
24 ; CHECK-NEXT: xvld $xr1, $a2, 0
25 ; CHECK-NEXT: xvfdiv.d $xr0, $xr0, $xr1
26 ; CHECK-NEXT: xvst $xr0, $a0, 0
29 %v0 = load <4 x double>, ptr %a0
30 %v1 = load <4 x double>, ptr %a1
31 %v2 = fdiv <4 x double> %v0, %v1
32 store <4 x double> %v2, ptr %res
37 define void @one_fdiv_v8f32(ptr %res, ptr %a0) nounwind {
38 ; CHECK-LABEL: one_fdiv_v8f32:
39 ; CHECK: # %bb.0: # %entry
40 ; CHECK-NEXT: xvld $xr0, $a1, 0
41 ; CHECK-NEXT: xvfrecip.s $xr0, $xr0
42 ; CHECK-NEXT: xvst $xr0, $a0, 0
45 %v0 = load <8 x float>, ptr %a0
46 %div = fdiv <8 x float> <float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0, float 1.0>, %v0
47 store <8 x float> %div, ptr %res
51 define void @one_fdiv_v4f64(ptr %res, ptr %a0) nounwind {
52 ; CHECK-LABEL: one_fdiv_v4f64:
53 ; CHECK: # %bb.0: # %entry
54 ; CHECK-NEXT: xvld $xr0, $a1, 0
55 ; CHECK-NEXT: xvfrecip.d $xr0, $xr0
56 ; CHECK-NEXT: xvst $xr0, $a0, 0
59 %v0 = load <4 x double>, ptr %a0
60 %div = fdiv <4 x double> <double 1.0, double 1.0, double 1.0, double 1.0>, %v0
61 store <4 x double> %div, ptr %res