brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 01297ef Raw
104 lines · plain
1; RUN: llc < %s -mtriple armv8a--none-eabi -mattr=+fullfp16 | FileCheck %s2 3define void @load_zero(ptr %in, ptr %out) {4entry:5; CHECK-LABEL: load_zero:6; CHECK: vldr.16 {{s[0-9]+}}, [r0]7  %load = load half, ptr %in, align 28  store half %load, ptr %out9  ret void10}11 12define void @load_255(ptr %in, ptr %out) {13entry:14; CHECK-LABEL: load_255:15; CHECK: vldr.16 {{s[0-9]+}}, [r0, #510]16  %arrayidx = getelementptr inbounds half, ptr %in, i32 25517  %load = load half, ptr %arrayidx, align 218  store half %load, ptr %out19  ret void20}21 22define void @load_256(ptr %in, ptr %out) {23entry:24; CHECK-LABEL: load_256:25; CHECK: add     [[ADDR:r[0-9]+]], r0, #51226; CHECK: vldr.16 {{s[0-9]+}}, [[[ADDR]]]27  %arrayidx = getelementptr inbounds half, ptr %in, i32 25628  %load = load half, ptr %arrayidx, align 229  store half %load, ptr %out30  ret void31}32 33define void @load_neg_255(ptr %in, ptr %out) {34entry:35; CHECK-LABEL: load_neg_255:36; CHECK: vldr.16 {{s[0-9]+}}, [r0, #-510]37  %arrayidx = getelementptr inbounds half, ptr %in, i32 -25538  %load = load half, ptr %arrayidx, align 239  store half %load, ptr %out40  ret void41}42 43define void @load_neg_256(ptr %in, ptr %out) {44entry:45; CHECK-LABEL: load_neg_256:46; CHECK: sub     [[ADDR:r[0-9]+]], r0, #51247; CHECK: vldr.16 {{s[0-9]+}}, [[[ADDR]]]48  %arrayidx = getelementptr inbounds half, ptr %in, i32 -25649  %load = load half, ptr %arrayidx, align 250  store half %load, ptr %out51  ret void52}53 54define void @store_zero(ptr %in, ptr %out) {55entry:56; CHECK-LABEL: store_zero:57  %load = load half, ptr %in, align 258; CHECK: vstr.16 {{s[0-9]+}}, [r1]59  store half %load, ptr %out60  ret void61}62 63define void @store_255(ptr %in, ptr %out) {64entry:65; CHECK-LABEL: store_255:66  %load = load half, ptr %in, align 267; CHECK: vstr.16 {{s[0-9]+}}, [r1, #510]68  %arrayidx = getelementptr inbounds half, ptr %out, i32 25569  store half %load, ptr %arrayidx70  ret void71}72 73define void @store_256(ptr %in, ptr %out) {74entry:75; CHECK-LABEL: store_256:76  %load = load half, ptr %in, align 277; CHECK: add     [[ADDR:r[0-9]+]], r1, #51278; CHECK: vstr.16 {{s[0-9]+}}, [[[ADDR]]]79  %arrayidx = getelementptr inbounds half, ptr %out, i32 25680  store half %load, ptr %arrayidx81  ret void82}83 84define void @store_neg_255(ptr %in, ptr %out) {85entry:86; CHECK-LABEL: store_neg_255:87  %load = load half, ptr %in, align 288; CHECK: vstr.16 {{s[0-9]+}}, [r1, #-510]89  %arrayidx = getelementptr inbounds half, ptr %out, i32 -25590  store half %load, ptr %arrayidx91  ret void92}93 94define void @store_neg_256(ptr %in, ptr %out) {95entry:96; CHECK-LABEL: store_neg_256:97  %load = load half, ptr %in, align 298; CHECK: sub     [[ADDR:r[0-9]+]], r1, #51299; CHECK: vstr.16 {{s[0-9]+}}, [[[ADDR]]]100  %arrayidx = getelementptr inbounds half, ptr %out, i32 -256101  store half %load, ptr %arrayidx102  ret void103}104