[sanitizer] Improve FreeBSD ASLR detection
[llvm-project.git] / llvm / test / Analysis / CostModel / AArch64 / sve-insert-extract.ll
bloba69cb543a3e30c709dcbc4c5fea0e1d92a36e07f
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -cost-model -analyze -S < %s | FileCheck %s
4 target triple = "aarch64-unknown-linux-gnu"
7 define void @ins_el0() #0 {
8 ; CHECK: Cost Model: Found an estimated cost of 0 for instruction:   %v0 = insertelement <vscale x 16 x i8> zeroinitializer, i8 0, i64 0
9 ; CHECK: Cost Model: Found an estimated cost of 0 for instruction:   %v1 = insertelement <vscale x 8 x i16> zeroinitializer, i16 0, i64 0
10 ; CHECK: Cost Model: Found an estimated cost of 0 for instruction:   %v2 = insertelement <vscale x 4 x i32> zeroinitializer, i32 0, i64 0
11 ; CHECK: Cost Model: Found an estimated cost of 0 for instruction:   %v3 = insertelement <vscale x 2 x i64> zeroinitializer, i64 0, i64 0
12   %v0 = insertelement <vscale x 16 x i8> zeroinitializer, i8 0, i64 0
13   %v1 = insertelement <vscale x 8 x i16> zeroinitializer, i16 0, i64 0
14   %v2 = insertelement <vscale x 4 x i32> zeroinitializer, i32 0, i64 0
15   %v3 = insertelement <vscale x 2 x i64> zeroinitializer, i64 0, i64 0
16   ret void
19 define void @ins_el1() #0 {
20 ; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v0 = insertelement <vscale x 16 x i8> zeroinitializer, i8 0, i64 1
21 ; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v1 = insertelement <vscale x 8 x i16> zeroinitializer, i16 0, i64 1
22 ; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v2 = insertelement <vscale x 4 x i32> zeroinitializer, i32 0, i64 1
23 ; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v3 = insertelement <vscale x 2 x i64> zeroinitializer, i64 0, i64 1
24   %v0 = insertelement <vscale x 16 x i8> zeroinitializer, i8 0, i64 1
25   %v1 = insertelement <vscale x 8 x i16> zeroinitializer, i16 0, i64 1
26   %v2 = insertelement <vscale x 4 x i32> zeroinitializer, i32 0, i64 1
27   %v3 = insertelement <vscale x 2 x i64> zeroinitializer, i64 0, i64 1
28   ret void
32 define void @ext_el0() #0 {
33 ; CHECK: Cost Model: Found an estimated cost of 0 for instruction:   %v0 = extractelement <vscale x 16 x i8> zeroinitializer, i64 0
34 ; CHECK: Cost Model: Found an estimated cost of 0 for instruction:   %v1 = extractelement <vscale x 8 x i16> zeroinitializer, i64 0
35 ; CHECK: Cost Model: Found an estimated cost of 0 for instruction:   %v2 = extractelement <vscale x 4 x i32> zeroinitializer, i64 0
36 ; CHECK: Cost Model: Found an estimated cost of 0 for instruction:   %v3 = extractelement <vscale x 2 x i64> zeroinitializer, i64 0
37   %v0 = extractelement <vscale x 16 x i8> zeroinitializer, i64 0
38   %v1 = extractelement <vscale x 8 x i16> zeroinitializer, i64 0
39   %v2 = extractelement <vscale x 4 x i32> zeroinitializer, i64 0
40   %v3 = extractelement <vscale x 2 x i64> zeroinitializer, i64 0
41   ret void
44 define void @ext_el1() #0 {
45 ; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v0 = extractelement <vscale x 16 x i8> zeroinitializer, i64 1
46 ; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v1 = extractelement <vscale x 8 x i16> zeroinitializer, i64 1
47 ; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v2 = extractelement <vscale x 4 x i32> zeroinitializer, i64 1
48 ; CHECK: Cost Model: Found an estimated cost of 3 for instruction:   %v3 = extractelement <vscale x 2 x i64> zeroinitializer, i64 1
49   %v0 = extractelement <vscale x 16 x i8> zeroinitializer, i64 1
50   %v1 = extractelement <vscale x 8 x i16> zeroinitializer, i64 1
51   %v2 = extractelement <vscale x 4 x i32> zeroinitializer, i64 1
52   %v3 = extractelement <vscale x 2 x i64> zeroinitializer, i64 1
53   ret void
57 attributes #0 = { "target-features"="+sve" vscale_range(1, 16) }