brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · 7665951 Raw
70 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64--linux-gnu -mattr=+sve < %s | FileCheck %s3 4define void @dead_masked_store(<vscale x 4 x i32> %val, ptr %a, <vscale x 4 x i1> %mask) {5; CHECK-LABEL: dead_masked_store:6; CHECK:       // %bb.0:7; CHECK-NEXT:    st1w { z0.s }, p0, [x0]8; CHECK-NEXT:    ret9  call void @llvm.masked.store.nxv4i32(<vscale x 4 x i32> %val, ptr %a, i32 4, <vscale x 4 x i1> %mask)10  call void @llvm.masked.store.nxv4i32(<vscale x 4 x i32> %val, ptr %a, i32 4, <vscale x 4 x i1> %mask)11  ret void12}13 14define void @dead_masked_store_alltrue_same(<vscale x 4 x i32> %val, ptr %a, <vscale x 4 x i1> %mask) {15; CHECK-LABEL: dead_masked_store_alltrue_same:16; CHECK:       // %bb.0:17; CHECK-NEXT:    str z0, [x0]18; CHECK-NEXT:    ret19  call void @llvm.masked.store.nxv4i32(<vscale x 4 x i32> %val, ptr %a, i32 4, <vscale x 4 x i1> %mask)20  call void @llvm.masked.store.nxv4i32(<vscale x 4 x i32> %val, ptr %a, i32 4, <vscale x 4 x i1> splat(i1 true))21  ret void22}23 24define void @dead_masked_store_alltrue_bigger(<vscale x 4 x i16> %val, <vscale x 4 x i32> %val1, ptr %a, <vscale x 4 x i1> %mask) {25; CHECK-LABEL: dead_masked_store_alltrue_bigger:26; CHECK:       // %bb.0:27; CHECK-NEXT:    str z1, [x0]28; CHECK-NEXT:    ret29  call void @llvm.masked.store.nxv4i16(<vscale x 4 x i16> %val, ptr %a, i32 4, <vscale x 4 x i1> %mask)30  call void @llvm.masked.store.nxv4i32(<vscale x 4 x i32> %val1, ptr %a, i32 4, <vscale x 4 x i1> splat(i1 true))31  ret void32}33 34define void @dead_masked_store_alltrue_smaller(<vscale x 4 x i32> %val, <vscale x 4 x i16> %val1, ptr %a, <vscale x 4 x i1> %mask) {35; CHECK-LABEL: dead_masked_store_alltrue_smaller:36; CHECK:       // %bb.0:37; CHECK-NEXT:    ptrue p1.s38; CHECK-NEXT:    st1w { z0.s }, p0, [x0]39; CHECK-NEXT:    st1h { z1.s }, p1, [x0]40; CHECK-NEXT:    ret41  call void @llvm.masked.store.nxv4i32(<vscale x 4 x i32> %val, ptr %a, i32 4, <vscale x 4 x i1> %mask)42  call void @llvm.masked.store.nxv4i16(<vscale x 4 x i16> %val1, ptr %a, i32 4, <vscale x 4 x i1> splat(i1 true))43  ret void44}45 46define void @dead_masked_store_same_mask_smaller_type(<vscale x 4 x i32> %val, <vscale x 4 x i16> %val1, ptr %a, <vscale x 4 x i1> %mask) {47; CHECK-LABEL: dead_masked_store_same_mask_smaller_type:48; CHECK:       // %bb.0:49; CHECK-NEXT:    st1w { z0.s }, p0, [x0]50; CHECK-NEXT:    st1h { z1.s }, p0, [x0]51; CHECK-NEXT:    ret52  call void @llvm.masked.store.nxv4i32(<vscale x 4 x i32> %val, ptr %a, i32 4, <vscale x 4 x i1> %mask)53  call void @llvm.masked.store.nxv4i16(<vscale x 4 x i16> %val1, ptr %a, i32 4, <vscale x 4 x i1> %mask)54  ret void55}56 57define void @dead_masked_store_same_mask_bigger_type(<vscale x 4 x i16> %val, <vscale x 4 x i32> %val1, ptr %a, <vscale x 4 x i1> %mask) {58; CHECK-LABEL: dead_masked_store_same_mask_bigger_type:59; CHECK:       // %bb.0:60; CHECK-NEXT:    st1h { z0.s }, p0, [x0]61; CHECK-NEXT:    st1w { z1.s }, p0, [x0]62; CHECK-NEXT:    ret63  call void @llvm.masked.store.nxv4i16(<vscale x 4 x i16> %val, ptr %a, i32 4, <vscale x 4 x i1> %mask)64  call void @llvm.masked.store.nxv4i32(<vscale x 4 x i32> %val1, ptr %a, i32 4, <vscale x 4 x i1> %mask)65  ret void66}67 68declare void @llvm.masked.store.nxv4i16(<vscale x 4 x i16>, ptr, i32, <vscale x 4 x i1>)69declare void @llvm.masked.store.nxv4i32(<vscale x 4 x i32>, ptr, i32, <vscale x 4 x i1>)70