100 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mcpu=pwr9 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \3; RUN: -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P9LE4; RUN: llc -mcpu=pwr9 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \5; RUN: -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P9BE6; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \7; RUN: -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P8LE8; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \9; RUN: -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P8BE10 11define void @test_liwzx1(ptr %A, ptr %B, ptr %C) {12; P9LE-LABEL: test_liwzx1:13; P9LE: # %bb.0:14; P9LE-NEXT: lfs f0, 0(r3)15; P9LE-NEXT: lfs f1, 0(r4)16; P9LE-NEXT: xsaddsp f0, f0, f117; P9LE-NEXT: stfs f0, 0(r5)18; P9LE-NEXT: blr19;20; P9BE-LABEL: test_liwzx1:21; P9BE: # %bb.0:22; P9BE-NEXT: lfs f0, 0(r3)23; P9BE-NEXT: lfs f1, 0(r4)24; P9BE-NEXT: xsaddsp f0, f0, f125; P9BE-NEXT: stfs f0, 0(r5)26; P9BE-NEXT: blr27;28; P8LE-LABEL: test_liwzx1:29; P8LE: # %bb.0:30; P8LE-NEXT: lfs f0, 0(r3)31; P8LE-NEXT: lfs f1, 0(r4)32; P8LE-NEXT: xsaddsp f0, f0, f133; P8LE-NEXT: stfs f0, 0(r5)34; P8LE-NEXT: blr35;36; P8BE-LABEL: test_liwzx1:37; P8BE: # %bb.0:38; P8BE-NEXT: lfs f0, 0(r3)39; P8BE-NEXT: lfs f1, 0(r4)40; P8BE-NEXT: xsaddsp f0, f0, f141; P8BE-NEXT: stfs f0, 0(r5)42; P8BE-NEXT: blr43 44 45 46 %a = load <1 x float>, ptr %A47 %b = load <1 x float>, ptr %B48 %X = fadd <1 x float> %a, %b49 store <1 x float> %X, ptr %C50 ret void51}52 53define ptr @test_liwzx2(ptr %A, ptr %B, ptr %C) {54; P9LE-LABEL: test_liwzx2:55; P9LE: # %bb.0:56; P9LE-NEXT: lfs f0, 0(r3)57; P9LE-NEXT: mr r3, r558; P9LE-NEXT: lfs f1, 0(r4)59; P9LE-NEXT: xssubsp f0, f0, f160; P9LE-NEXT: stfs f0, 0(r5)61; P9LE-NEXT: blr62;63; P9BE-LABEL: test_liwzx2:64; P9BE: # %bb.0:65; P9BE-NEXT: lfs f0, 0(r3)66; P9BE-NEXT: mr r3, r567; P9BE-NEXT: lfs f1, 0(r4)68; P9BE-NEXT: xssubsp f0, f0, f169; P9BE-NEXT: stfs f0, 0(r5)70; P9BE-NEXT: blr71;72; P8LE-LABEL: test_liwzx2:73; P8LE: # %bb.0:74; P8LE-NEXT: lfs f0, 0(r3)75; P8LE-NEXT: lfs f1, 0(r4)76; P8LE-NEXT: mr r3, r577; P8LE-NEXT: xssubsp f0, f0, f178; P8LE-NEXT: stfs f0, 0(r5)79; P8LE-NEXT: blr80;81; P8BE-LABEL: test_liwzx2:82; P8BE: # %bb.0:83; P8BE-NEXT: lfs f0, 0(r3)84; P8BE-NEXT: lfs f1, 0(r4)85; P8BE-NEXT: mr r3, r586; P8BE-NEXT: xssubsp f0, f0, f187; P8BE-NEXT: stfs f0, 0(r5)88; P8BE-NEXT: blr89 90 91 92 93 94 %a = load <1 x float>, ptr %A95 %b = load <1 x float>, ptr %B96 %X = fsub <1 x float> %a, %b97 store <1 x float> %X, ptr %C98 ret ptr %C99}100