blob: 1d78203cf5d5a28afdfc69bd997017cdc95dbfc3 [file] [log] [blame] [edit]
# RUN: llc -march=hexagon -mcpu=hexagonv69 -mattr=+hvxv69,+hvx-length128b -run-pass hexagon-qfp-optimizer %s -o - | FileCheck %s
# CHECK: V6_vshuffvdd
# CHECK: V6_vadd_sf
# CHECK: V6_vadd_qf32_mix{{.*}}vsub_lo
# CHECK: V6_vadd_qf32_mix{{.*}}vsub_hi
---
name: qfp_subreg_fix
alignment: 16
tracksRegLiveness: true
body: |
bb.0:
%10:intregs = IMPLICIT_DEF
%9:hvxvr = V6_vL32Ub_ai %10, 0 :: (load (s1024) from `ptr undef`, align 4)
%11:intregs = A2_tfrsi 15360
%12:hvxvr = V6_lvsplath %11
%13:hvxwr = V6_vmpy_qf32_hf %9, %12
%15:hvxvr = V6_vconv_sf_qf32 %13.vsub_lo
%17:hvxvr = V6_vconv_sf_qf32 %13.vsub_hi
%18:intregslow8 = A2_tfrsi -4
%19:hvxwr = V6_vshuffvdd %17, %15, %18
%21:hvxvr = V6_vadd_sf %19.vsub_hi, %19.vsub_hi
%22:hvxvr = V6_vconv_sf_qf32 %21
%24:hvxvr = V6_vadd_sf %19.vsub_lo, %19.vsub_lo
%25:hvxvr = V6_vconv_sf_qf32 %24
%26:hvxvr = V6_vadd_sf %25, %19.vsub_lo
%27:hvxvr = V6_vconv_sf_qf32 %26
%28:hvxvr = V6_vadd_sf %22, %19.vsub_hi
%29:hvxvr = V6_vconv_sf_qf32 %28
...