; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=thumbv7-apple-ios6.0.0 -mcpu=cortex-a9 < %s | FileCheck %s --check-prefix=CHECK-NEON ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=thumbv8.1m.main-none-eabi -mattr=+mve.fp < %s | FileCheck %s --check-prefix=CHECK-MVE ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=thumbv8m.main-none-eabi < %s | FileCheck %s --check-prefix=CHECK-V8M-MAIN ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=thumbv8m.base-none-eabi < %s | FileCheck %s --check-prefix=CHECK-V8M-BASE ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=armv8r-none-eabi -mattr=+neon,+fp-armv8 < %s | FileCheck %s --check-prefix=CHECK-V8R target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" define i32 @load_extends() { ; CHECK-NEON-LABEL: 'load_extends' ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi8 = load i8, ptr undef, align 1 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi16 = load i16, ptr undef, align 2 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi32 = load i32, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i8 = load <2 x i8>, ptr undef, align 2 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i8 = load <4 x i8>, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8i8 = load <8 x i8>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv16i8 = load <16 x i8>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i16 = load <2 x i16>, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i16 = load <4 x i16>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8i16 = load <8 x i16>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i32 = load <2 x i32>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i32 = load <4 x i32>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %r0 = sext i8 %loadi8 to i16 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %r1 = zext i8 %loadi8 to i16 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %r2 = sext i8 %loadi8 to i32 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %r3 = zext i8 %loadi8 to i32 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %r4 = sext i8 %loadi8 to i64 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %r5 = zext i8 %loadi8 to i64 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %r6 = sext i16 %loadi16 to i32 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %r7 = zext i16 %loadi16 to i32 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %r8 = sext i16 %loadi16 to i64 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %r9 = zext i16 %loadi16 to i64 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %r10 = sext i32 %loadi32 to i64 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %r11 = zext i32 %loadi32 to i64 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-MVE-LABEL: 'load_extends' ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi8 = load i8, ptr undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi16 = load i16, ptr undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi32 = load i32, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i8 = load <2 x i8>, ptr undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i8 = load <4 x i8>, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8i8 = load <8 x i8>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv16i8 = load <16 x i8>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i16 = load <2 x i16>, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i16 = load <4 x i16>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8i16 = load <8 x i16>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i32 = load <2 x i32>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i32 = load <4 x i32>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %r0 = sext i8 %loadi8 to i16 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %r1 = zext i8 %loadi8 to i16 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %r2 = sext i8 %loadi8 to i32 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %r3 = zext i8 %loadi8 to i32 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: %r4 = sext i8 %loadi8 to i64 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: %r5 = zext i8 %loadi8 to i64 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %r6 = sext i16 %loadi16 to i32 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %r7 = zext i16 %loadi16 to i32 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: %r8 = sext i16 %loadi16 to i64 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: %r9 = zext i16 %loadi16 to i64 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: %r10 = sext i32 %loadi32 to i64 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: %r11 = zext i32 %loadi32 to i64 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:10 Lat:20 SizeLat:20 for: %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:82 CodeSize:1 Lat:1 SizeLat:1 for: %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:330 CodeSize:1 Lat:1 SizeLat:1 for: %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:74 CodeSize:1 Lat:1 SizeLat:1 for: %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:3 Lat:6 SizeLat:6 for: %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:3 Lat:6 SizeLat:6 for: %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:1322 CodeSize:1 Lat:1 SizeLat:1 for: %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:298 CodeSize:1 Lat:1 SizeLat:1 for: %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:10 Lat:20 SizeLat:20 for: %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:82 CodeSize:1 Lat:1 SizeLat:1 for: %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:330 CodeSize:1 Lat:1 SizeLat:1 for: %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:74 CodeSize:1 Lat:1 SizeLat:1 for: %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:66 CodeSize:1 Lat:1 SizeLat:1 for: %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-V8M-MAIN-LABEL: 'load_extends' ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi8 = load i8, ptr undef, align 1 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi16 = load i16, ptr undef, align 2 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi32 = load i32, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i8 = load <2 x i8>, ptr undef, align 2 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i8 = load <4 x i8>, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8i8 = load <8 x i8>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %loadv16i8 = load <16 x i8>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i16 = load <2 x i16>, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i16 = load <4 x i16>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8i16 = load <8 x i16>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i32 = load <2 x i32>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i32 = load <4 x i32>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %r0 = sext i8 %loadi8 to i16 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %r1 = zext i8 %loadi8 to i16 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %r2 = sext i8 %loadi8 to i32 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %r3 = zext i8 %loadi8 to i32 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: %r4 = sext i8 %loadi8 to i64 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: %r5 = zext i8 %loadi8 to i64 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %r6 = sext i16 %loadi16 to i32 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %r7 = zext i16 %loadi16 to i32 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: %r8 = sext i16 %loadi16 to i64 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: %r9 = zext i16 %loadi16 to i64 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: %r10 = sext i32 %loadi32 to i64 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: %r11 = zext i32 %loadi32 to i64 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:80 CodeSize:1 Lat:1 SizeLat:1 for: %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:80 CodeSize:1 Lat:1 SizeLat:1 for: %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8M-BASE-LABEL: 'load_extends' ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi8 = load i8, ptr undef, align 1 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi16 = load i16, ptr undef, align 2 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi32 = load i32, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i8 = load <2 x i8>, ptr undef, align 2 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i8 = load <4 x i8>, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8i8 = load <8 x i8>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %loadv16i8 = load <16 x i8>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i16 = load <2 x i16>, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i16 = load <4 x i16>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8i16 = load <8 x i16>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i32 = load <2 x i32>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i32 = load <4 x i32>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %r0 = sext i8 %loadi8 to i16 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %r1 = zext i8 %loadi8 to i16 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %r2 = sext i8 %loadi8 to i32 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %r3 = zext i8 %loadi8 to i32 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: %r4 = sext i8 %loadi8 to i64 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: %r5 = zext i8 %loadi8 to i64 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %r6 = sext i16 %loadi16 to i32 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %r7 = zext i16 %loadi16 to i32 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: %r8 = sext i16 %loadi16 to i64 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: %r9 = zext i16 %loadi16 to i64 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: %r10 = sext i32 %loadi32 to i64 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: %r11 = zext i32 %loadi32 to i64 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:80 CodeSize:1 Lat:1 SizeLat:1 for: %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:80 CodeSize:1 Lat:1 SizeLat:1 for: %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8R-LABEL: 'load_extends' ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi8 = load i8, ptr undef, align 1 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi16 = load i16, ptr undef, align 2 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadi32 = load i32, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i8 = load <2 x i8>, ptr undef, align 2 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i8 = load <4 x i8>, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8i8 = load <8 x i8>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv16i8 = load <16 x i8>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i16 = load <2 x i16>, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i16 = load <4 x i16>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8i16 = load <8 x i16>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2i32 = load <2 x i32>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4i32 = load <4 x i32>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %r0 = sext i8 %loadi8 to i16 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %r1 = zext i8 %loadi8 to i16 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %r2 = sext i8 %loadi8 to i32 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %r3 = zext i8 %loadi8 to i32 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %r4 = sext i8 %loadi8 to i64 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %r5 = zext i8 %loadi8 to i64 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %r6 = sext i16 %loadi16 to i32 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %r7 = zext i16 %loadi16 to i32 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %r8 = sext i16 %loadi16 to i64 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %r9 = zext i16 %loadi16 to i64 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %r10 = sext i32 %loadi32 to i64 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %r11 = zext i32 %loadi32 to i64 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; %loadi8 = load i8, ptr undef %loadi16 = load i16, ptr undef %loadi32 = load i32, ptr undef %loadv2i8 = load <2 x i8>, ptr undef %loadv4i8 = load <4 x i8>, ptr undef %loadv8i8 = load <8 x i8>, ptr undef %loadv16i8 = load <16 x i8>, ptr undef %loadv2i16 = load <2 x i16>, ptr undef %loadv4i16 = load <4 x i16>, ptr undef %loadv8i16 = load <8 x i16>, ptr undef %loadv2i32 = load <2 x i32>, ptr undef %loadv4i32 = load <4 x i32>, ptr undef %r0 = sext i8 %loadi8 to i16 %r1 = zext i8 %loadi8 to i16 %r2 = sext i8 %loadi8 to i32 %r3 = zext i8 %loadi8 to i32 %r4 = sext i8 %loadi8 to i64 %r5 = zext i8 %loadi8 to i64 %r6 = sext i16 %loadi16 to i32 %r7 = zext i16 %loadi16 to i32 %r8 = sext i16 %loadi16 to i64 %r9 = zext i16 %loadi16 to i64 %r10 = sext i32 %loadi32 to i64 %r11 = zext i32 %loadi32 to i64 %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ret i32 undef } define i32 @store_trunc() { ; CHECK-NEON-LABEL: 'store_trunc' ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %i816 = trunc i16 undef to i8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %i832 = trunc i32 undef to i8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %i864 = trunc i64 undef to i8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %i1632 = trunc i32 undef to i16 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %i1664 = trunc i64 undef to i16 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %i3264 = trunc i64 undef to i32 ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v2816 = trunc <2 x i16> undef to <2 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v2832 = trunc <2 x i32> undef to <2 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v2864 = trunc <2 x i64> undef to <2 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v4816 = trunc <4 x i16> undef to <4 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v4832 = trunc <4 x i32> undef to <4 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v4864 = trunc <4 x i64> undef to <4 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v8816 = trunc <8 x i16> undef to <8 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832 = trunc <8 x i32> undef to <8 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v8864 = trunc <8 x i64> undef to <8 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816 = trunc <16 x i16> undef to <16 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832 = trunc <16 x i32> undef to <16 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16864 = trunc <16 x i64> undef to <16 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v21632 = trunc <2 x i32> undef to <2 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v21664 = trunc <2 x i64> undef to <2 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v41632 = trunc <4 x i32> undef to <4 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v41664 = trunc <4 x i64> undef to <4 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632 = trunc <8 x i32> undef to <8 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81664 = trunc <8 x i64> undef to <8 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v23264 = trunc <2 x i64> undef to <2 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v43264 = trunc <4 x i64> undef to <4 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store i8 %i816, ptr undef, align 1 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store i8 %i832, ptr undef, align 1 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store i8 %i864, ptr undef, align 1 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store i16 %i1632, ptr undef, align 2 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store i16 %i1664, ptr undef, align 2 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store i32 %i3264, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2816, ptr undef, align 2 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2832, ptr undef, align 2 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2864, ptr undef, align 2 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4816, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4832, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4864, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <8 x i8> %v8816, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <8 x i8> %v8832, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <8 x i8> %v8864, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <16 x i8> %v16816, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <16 x i8> %v16832, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <16 x i8> %v16864, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i16> %v21632, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i16> %v21664, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <4 x i16> %v41632, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <4 x i16> %v41664, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <8 x i16> %v81632, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <8 x i16> %v81664, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <2 x i32> %v23264, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <4 x i32> %v43264, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-MVE-LABEL: 'store_trunc' ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %i816 = trunc i16 undef to i8 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %i832 = trunc i32 undef to i8 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %i864 = trunc i64 undef to i8 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %i1632 = trunc i32 undef to i16 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %i1664 = trunc i64 undef to i16 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %i3264 = trunc i64 undef to i32 ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v2816 = trunc <2 x i16> undef to <2 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v2832 = trunc <2 x i32> undef to <2 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v2864 = trunc <2 x i64> undef to <2 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v4816 = trunc <4 x i16> undef to <4 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v4832 = trunc <4 x i32> undef to <4 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v4864 = trunc <4 x i64> undef to <4 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v8816 = trunc <8 x i16> undef to <8 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v8832 = trunc <8 x i32> undef to <8 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v8864 = trunc <8 x i64> undef to <8 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v16816 = trunc <16 x i16> undef to <16 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:3 Lat:6 SizeLat:6 for: %v16832 = trunc <16 x i32> undef to <16 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v16864 = trunc <16 x i64> undef to <16 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v21632 = trunc <2 x i32> undef to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v21664 = trunc <2 x i64> undef to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v41632 = trunc <4 x i32> undef to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v41664 = trunc <4 x i64> undef to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v81632 = trunc <8 x i32> undef to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v81664 = trunc <8 x i64> undef to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v23264 = trunc <2 x i64> undef to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v43264 = trunc <4 x i64> undef to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: store i8 %i816, ptr undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: store i8 %i832, ptr undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: store i8 %i864, ptr undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: store i16 %i1632, ptr undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: store i16 %i1664, ptr undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: store i32 %i3264, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2816, ptr undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2832, ptr undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2864, ptr undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4816, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4832, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4864, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8816, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8832, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8864, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16816, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16832, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16864, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i16> %v21632, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i16> %v21664, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i16> %v41632, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i16> %v41664, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i16> %v81632, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i16> %v81664, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i32> %v23264, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i32> %v43264, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-V8M-MAIN-LABEL: 'store_trunc' ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %i816 = trunc i16 undef to i8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %i832 = trunc i32 undef to i8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %i864 = trunc i64 undef to i8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %i1632 = trunc i32 undef to i16 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %i1664 = trunc i64 undef to i16 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %i3264 = trunc i64 undef to i32 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v2816 = trunc <2 x i16> undef to <2 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v2832 = trunc <2 x i32> undef to <2 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v2864 = trunc <2 x i64> undef to <2 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v4816 = trunc <4 x i16> undef to <4 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v4832 = trunc <4 x i32> undef to <4 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v4864 = trunc <4 x i64> undef to <4 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v8816 = trunc <8 x i16> undef to <8 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v8832 = trunc <8 x i32> undef to <8 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v8864 = trunc <8 x i64> undef to <8 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v16816 = trunc <16 x i16> undef to <16 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v16832 = trunc <16 x i32> undef to <16 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v16864 = trunc <16 x i64> undef to <16 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v21632 = trunc <2 x i32> undef to <2 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v21664 = trunc <2 x i64> undef to <2 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v41632 = trunc <4 x i32> undef to <4 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v41664 = trunc <4 x i64> undef to <4 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v81632 = trunc <8 x i32> undef to <8 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v81664 = trunc <8 x i64> undef to <8 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v23264 = trunc <2 x i64> undef to <2 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v43264 = trunc <4 x i64> undef to <4 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: store i8 %i816, ptr undef, align 1 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: store i8 %i832, ptr undef, align 1 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: store i8 %i864, ptr undef, align 1 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: store i16 %i1632, ptr undef, align 2 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: store i16 %i1664, ptr undef, align 2 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: store i32 %i3264, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2816, ptr undef, align 2 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2832, ptr undef, align 2 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2864, ptr undef, align 2 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4816, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4832, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4864, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8816, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8832, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8864, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16816, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16832, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16864, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i16> %v21632, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i16> %v21664, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i16> %v41632, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i16> %v41664, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i16> %v81632, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i16> %v81664, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i32> %v23264, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i32> %v43264, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8M-BASE-LABEL: 'store_trunc' ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %i816 = trunc i16 undef to i8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %i832 = trunc i32 undef to i8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %i864 = trunc i64 undef to i8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %i1632 = trunc i32 undef to i16 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %i1664 = trunc i64 undef to i16 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %i3264 = trunc i64 undef to i32 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v2816 = trunc <2 x i16> undef to <2 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v2832 = trunc <2 x i32> undef to <2 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v2864 = trunc <2 x i64> undef to <2 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v4816 = trunc <4 x i16> undef to <4 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v4832 = trunc <4 x i32> undef to <4 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v4864 = trunc <4 x i64> undef to <4 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v8816 = trunc <8 x i16> undef to <8 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v8832 = trunc <8 x i32> undef to <8 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v8864 = trunc <8 x i64> undef to <8 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v16816 = trunc <16 x i16> undef to <16 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v16832 = trunc <16 x i32> undef to <16 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v16864 = trunc <16 x i64> undef to <16 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v21632 = trunc <2 x i32> undef to <2 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v21664 = trunc <2 x i64> undef to <2 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v41632 = trunc <4 x i32> undef to <4 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v41664 = trunc <4 x i64> undef to <4 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v81632 = trunc <8 x i32> undef to <8 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v81664 = trunc <8 x i64> undef to <8 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v23264 = trunc <2 x i64> undef to <2 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v43264 = trunc <4 x i64> undef to <4 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: store i8 %i816, ptr undef, align 1 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: store i8 %i832, ptr undef, align 1 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: store i8 %i864, ptr undef, align 1 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: store i16 %i1632, ptr undef, align 2 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: store i16 %i1664, ptr undef, align 2 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: store i32 %i3264, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2816, ptr undef, align 2 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2832, ptr undef, align 2 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2864, ptr undef, align 2 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4816, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4832, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4864, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8816, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8832, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8864, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16816, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16832, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16864, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i16> %v21632, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i16> %v21664, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i16> %v41632, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i16> %v41664, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i16> %v81632, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i16> %v81664, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i32> %v23264, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i32> %v43264, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8R-LABEL: 'store_trunc' ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %i816 = trunc i16 undef to i8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %i832 = trunc i32 undef to i8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %i864 = trunc i64 undef to i8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %i1632 = trunc i32 undef to i16 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %i1664 = trunc i64 undef to i16 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %i3264 = trunc i64 undef to i32 ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v2816 = trunc <2 x i16> undef to <2 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v2832 = trunc <2 x i32> undef to <2 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v2864 = trunc <2 x i64> undef to <2 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v4816 = trunc <4 x i16> undef to <4 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v4832 = trunc <4 x i32> undef to <4 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v4864 = trunc <4 x i64> undef to <4 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v8816 = trunc <8 x i16> undef to <8 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832 = trunc <8 x i32> undef to <8 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v8864 = trunc <8 x i64> undef to <8 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816 = trunc <16 x i16> undef to <16 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832 = trunc <16 x i32> undef to <16 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16864 = trunc <16 x i64> undef to <16 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v21632 = trunc <2 x i32> undef to <2 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v21664 = trunc <2 x i64> undef to <2 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v41632 = trunc <4 x i32> undef to <4 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v41664 = trunc <4 x i64> undef to <4 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632 = trunc <8 x i32> undef to <8 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81664 = trunc <8 x i64> undef to <8 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v23264 = trunc <2 x i64> undef to <2 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v43264 = trunc <4 x i64> undef to <4 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store i8 %i816, ptr undef, align 1 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store i8 %i832, ptr undef, align 1 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store i8 %i864, ptr undef, align 1 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store i16 %i1632, ptr undef, align 2 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store i16 %i1664, ptr undef, align 2 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store i32 %i3264, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2816, ptr undef, align 2 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2832, ptr undef, align 2 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i8> %v2864, ptr undef, align 2 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4816, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4832, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4864, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <8 x i8> %v8816, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <8 x i8> %v8832, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <8 x i8> %v8864, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <16 x i8> %v16816, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <16 x i8> %v16832, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <16 x i8> %v16864, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i16> %v21632, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x i16> %v21664, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <4 x i16> %v41632, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <4 x i16> %v41664, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <8 x i16> %v81632, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <8 x i16> %v81664, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <2 x i32> %v23264, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <4 x i32> %v43264, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; %i816 = trunc i16 undef to i8 %i832 = trunc i32 undef to i8 %i864 = trunc i64 undef to i8 %i1632 = trunc i32 undef to i16 %i1664 = trunc i64 undef to i16 %i3264 = trunc i64 undef to i32 %v2816 = trunc <2 x i16> undef to <2 x i8> %v2832 = trunc <2 x i32> undef to <2 x i8> %v2864 = trunc <2 x i64> undef to <2 x i8> %v4816 = trunc <4 x i16> undef to <4 x i8> %v4832 = trunc <4 x i32> undef to <4 x i8> %v4864 = trunc <4 x i64> undef to <4 x i8> %v8816 = trunc <8 x i16> undef to <8 x i8> %v8832 = trunc <8 x i32> undef to <8 x i8> %v8864 = trunc <8 x i64> undef to <8 x i8> %v16816 = trunc <16 x i16> undef to <16 x i8> %v16832 = trunc <16 x i32> undef to <16 x i8> %v16864 = trunc <16 x i64> undef to <16 x i8> %v21632 = trunc <2 x i32> undef to <2 x i16> %v21664 = trunc <2 x i64> undef to <2 x i16> %v41632 = trunc <4 x i32> undef to <4 x i16> %v41664 = trunc <4 x i64> undef to <4 x i16> %v81632 = trunc <8 x i32> undef to <8 x i16> %v81664 = trunc <8 x i64> undef to <8 x i16> %v23264 = trunc <2 x i64> undef to <2 x i32> %v43264 = trunc <4 x i64> undef to <4 x i32> store i8 %i816, ptr undef store i8 %i832, ptr undef store i8 %i864, ptr undef store i16 %i1632, ptr undef store i16 %i1664, ptr undef store i32 %i3264, ptr undef store <2 x i8> %v2816, ptr undef store <2 x i8> %v2832, ptr undef store <2 x i8> %v2864, ptr undef store <4 x i8> %v4816, ptr undef store <4 x i8> %v4832, ptr undef store <4 x i8> %v4864, ptr undef store <8 x i8> %v8816, ptr undef store <8 x i8> %v8832, ptr undef store <8 x i8> %v8864, ptr undef store <16 x i8> %v16816, ptr undef store <16 x i8> %v16832, ptr undef store <16 x i8> %v16864, ptr undef store <2 x i16> %v21632, ptr undef store <2 x i16> %v21664, ptr undef store <4 x i16> %v41632, ptr undef store <4 x i16> %v41664, ptr undef store <8 x i16> %v81632, ptr undef store <8 x i16> %v81664, ptr undef store <2 x i32> %v23264, ptr undef store <4 x i32> %v43264, ptr undef ret i32 undef } define i32 @load_fpextends() { ; CHECK-NEON-LABEL: 'load_fpextends' ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadf16 = load half, ptr undef, align 2 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadf32 = load float, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2f16 = load <2 x half>, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16 = load <4 x half>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8f16 = load <8 x half>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %loadv16f16 = load <16 x half>, ptr undef, align 32 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2f32 = load <2 x float>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f32 = load <4 x float>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8f32 = load <8 x float>, ptr undef, align 32 ; CHECK-NEON-NEXT: Cost Model: Found costs of 10 for: %r1 = fpext half %loadf16 to float ; CHECK-NEON-NEXT: Cost Model: Found costs of 10 for: %r2 = fpext half %loadf16 to double ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %r3 = fpext float %loadf32 to double ; CHECK-NEON-NEXT: Cost Model: Found costs of 20 for: %v1 = fpext <2 x half> %loadv2f16 to <2 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of 40 for: %v2 = fpext <4 x half> %loadv4f16 to <4 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of 80 for: %v3 = fpext <8 x half> %loadv8f16 to <8 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of 160 for: %v4 = fpext <16 x half> %loadv16f16 to <16 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of 20 for: %v5 = fpext <2 x half> %loadv2f16 to <2 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of 40 for: %v6 = fpext <4 x half> %loadv4f16 to <4 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of 80 for: %v7 = fpext <8 x half> %loadv8f16 to <8 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of 160 for: %v8 = fpext <16 x half> %loadv16f16 to <16 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v9 = fpext <2 x float> %loadv2f32 to <2 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v10 = fpext <4 x float> %loadv4f32 to <4 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v11 = fpext <8 x float> %loadv8f32 to <8 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16ou = load <4 x half>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 40 for: %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-MVE-LABEL: 'load_fpextends' ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadf16 = load half, ptr undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadf32 = load float, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2f16 = load <2 x half>, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16 = load <4 x half>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8f16 = load <8 x half>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv16f16 = load <16 x half>, ptr undef, align 32 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2f32 = load <2 x float>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f32 = load <4 x float>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8f32 = load <8 x float>, ptr undef, align 32 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: %r1 = fpext half %loadf16 to float ; CHECK-MVE-NEXT: Cost Model: Found costs of 10 for: %r2 = fpext half %loadf16 to double ; CHECK-MVE-NEXT: Cost Model: Found costs of 10 for: %r3 = fpext float %loadf32 to double ; CHECK-MVE-NEXT: Cost Model: Found costs of 2 for: %v1 = fpext <2 x half> %loadv2f16 to <2 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v2 = fpext <4 x half> %loadv4f16 to <4 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:3 Lat:6 SizeLat:6 for: %v3 = fpext <8 x half> %loadv8f16 to <8 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: %v4 = fpext <16 x half> %loadv16f16 to <16 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of 20 for: %v5 = fpext <2 x half> %loadv2f16 to <2 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 40 for: %v6 = fpext <4 x half> %loadv4f16 to <4 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 80 for: %v7 = fpext <8 x half> %loadv8f16 to <8 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 160 for: %v8 = fpext <16 x half> %loadv16f16 to <16 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 20 for: %v9 = fpext <2 x float> %loadv2f32 to <2 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 40 for: %v10 = fpext <4 x float> %loadv4f32 to <4 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 80 for: %v11 = fpext <8 x float> %loadv8f32 to <8 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16ou = load <4 x half>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-V8M-MAIN-LABEL: 'load_fpextends' ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadf16 = load half, ptr undef, align 2 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadf32 = load float, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2f16 = load <2 x half>, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16 = load <4 x half>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8f16 = load <8 x half>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %loadv16f16 = load <16 x half>, ptr undef, align 32 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2f32 = load <2 x float>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f32 = load <4 x float>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8f32 = load <8 x float>, ptr undef, align 32 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 10 for: %r1 = fpext half %loadf16 to float ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 10 for: %r2 = fpext half %loadf16 to double ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 10 for: %r3 = fpext float %loadf32 to double ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v1 = fpext <2 x half> %loadv2f16 to <2 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v2 = fpext <4 x half> %loadv4f16 to <4 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 80 for: %v3 = fpext <8 x half> %loadv8f16 to <8 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 160 for: %v4 = fpext <16 x half> %loadv16f16 to <16 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v5 = fpext <2 x half> %loadv2f16 to <2 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v6 = fpext <4 x half> %loadv4f16 to <4 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 80 for: %v7 = fpext <8 x half> %loadv8f16 to <8 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 160 for: %v8 = fpext <16 x half> %loadv16f16 to <16 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v9 = fpext <2 x float> %loadv2f32 to <2 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v10 = fpext <4 x float> %loadv4f32 to <4 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 80 for: %v11 = fpext <8 x float> %loadv8f32 to <8 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16ou = load <4 x half>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8M-BASE-LABEL: 'load_fpextends' ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadf16 = load half, ptr undef, align 2 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadf32 = load float, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2f16 = load <2 x half>, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16 = load <4 x half>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8f16 = load <8 x half>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %loadv16f16 = load <16 x half>, ptr undef, align 32 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2f32 = load <2 x float>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f32 = load <4 x float>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8f32 = load <8 x float>, ptr undef, align 32 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 10 for: %r1 = fpext half %loadf16 to float ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 10 for: %r2 = fpext half %loadf16 to double ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 10 for: %r3 = fpext float %loadf32 to double ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v1 = fpext <2 x half> %loadv2f16 to <2 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v2 = fpext <4 x half> %loadv4f16 to <4 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 80 for: %v3 = fpext <8 x half> %loadv8f16 to <8 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 160 for: %v4 = fpext <16 x half> %loadv16f16 to <16 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v5 = fpext <2 x half> %loadv2f16 to <2 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v6 = fpext <4 x half> %loadv4f16 to <4 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 80 for: %v7 = fpext <8 x half> %loadv8f16 to <8 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 160 for: %v8 = fpext <16 x half> %loadv16f16 to <16 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v9 = fpext <2 x float> %loadv2f32 to <2 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v10 = fpext <4 x float> %loadv4f32 to <4 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 80 for: %v11 = fpext <8 x float> %loadv8f32 to <8 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16ou = load <4 x half>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8R-LABEL: 'load_fpextends' ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadf16 = load half, ptr undef, align 2 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadf32 = load float, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2f16 = load <2 x half>, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16 = load <4 x half>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8f16 = load <8 x half>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %loadv16f16 = load <16 x half>, ptr undef, align 32 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv2f32 = load <2 x float>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f32 = load <4 x float>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv8f32 = load <8 x float>, ptr undef, align 32 ; CHECK-V8R-NEXT: Cost Model: Found costs of 10 for: %r1 = fpext half %loadf16 to float ; CHECK-V8R-NEXT: Cost Model: Found costs of 10 for: %r2 = fpext half %loadf16 to double ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %r3 = fpext float %loadf32 to double ; CHECK-V8R-NEXT: Cost Model: Found costs of 20 for: %v1 = fpext <2 x half> %loadv2f16 to <2 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of 40 for: %v2 = fpext <4 x half> %loadv4f16 to <4 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of 80 for: %v3 = fpext <8 x half> %loadv8f16 to <8 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of 160 for: %v4 = fpext <16 x half> %loadv16f16 to <16 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of 20 for: %v5 = fpext <2 x half> %loadv2f16 to <2 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of 40 for: %v6 = fpext <4 x half> %loadv4f16 to <4 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of 80 for: %v7 = fpext <8 x half> %loadv8f16 to <8 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of 160 for: %v8 = fpext <16 x half> %loadv16f16 to <16 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v9 = fpext <2 x float> %loadv2f32 to <2 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v10 = fpext <4 x float> %loadv4f32 to <4 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v11 = fpext <8 x float> %loadv8f32 to <8 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16ou = load <4 x half>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 40 for: %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; %loadf16 = load half, ptr undef %loadf32 = load float, ptr undef %loadv2f16 = load <2 x half>, ptr undef %loadv4f16 = load <4 x half>, ptr undef %loadv8f16 = load <8 x half>, ptr undef %loadv16f16 = load <16 x half>, ptr undef %loadv2f32 = load <2 x float>, ptr undef %loadv4f32 = load <4 x float>, ptr undef %loadv8f32 = load <8 x float>, ptr undef %r1 = fpext half %loadf16 to float %r2 = fpext half %loadf16 to double %r3 = fpext float %loadf32 to double %v1 = fpext <2 x half> %loadv2f16 to <2 x float> %v2 = fpext <4 x half> %loadv4f16 to <4 x float> %v3 = fpext <8 x half> %loadv8f16 to <8 x float> %v4 = fpext <16 x half> %loadv16f16 to <16 x float> %v5 = fpext <2 x half> %loadv2f16 to <2 x double> %v6 = fpext <4 x half> %loadv4f16 to <4 x double> %v7 = fpext <8 x half> %loadv8f16 to <8 x double> %v8 = fpext <16 x half> %loadv16f16 to <16 x double> %v9 = fpext <2 x float> %loadv2f32 to <2 x double> %v10 = fpext <4 x float> %loadv4f32 to <4 x double> %v11 = fpext <8 x float> %loadv8f32 to <8 x double> %loadv4f16ou = load <4 x half>, ptr undef %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ret i32 undef } define i32 @load_fptrunc() { ; CHECK-NEON-LABEL: 'load_fptrunc' ; CHECK-NEON-NEXT: Cost Model: Found costs of 10 for: %i1632 = fptrunc float undef to half ; CHECK-NEON-NEXT: Cost Model: Found costs of 10 for: %i1664 = fptrunc double undef to half ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %i3264 = fptrunc double undef to float ; CHECK-NEON-NEXT: Cost Model: Found costs of 20 for: %v21632 = fptrunc <2 x float> undef to <2 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of 20 for: %v21664 = fptrunc <2 x double> undef to <2 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of 40 for: %v41632 = fptrunc <4 x float> undef to <4 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of 40 for: %v41664 = fptrunc <4 x double> undef to <4 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of 80 for: %v81632 = fptrunc <8 x float> undef to <8 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of 80 for: %v81664 = fptrunc <8 x double> undef to <8 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v23264 = fptrunc <2 x double> undef to <2 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v43264 = fptrunc <4 x double> undef to <4 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store half %i1632, ptr undef, align 2 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store half %i1664, ptr undef, align 2 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store float %i3264, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x half> %v21632, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x half> %v21664, ptr undef, align 4 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x half> %v41632, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x half> %v41664, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x half> %v81632, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x half> %v81664, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <2 x float> %v23264, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: store <4 x float> %v43264, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-MVE-LABEL: 'load_fptrunc' ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: %i1632 = fptrunc float undef to half ; CHECK-MVE-NEXT: Cost Model: Found costs of 10 for: %i1664 = fptrunc double undef to half ; CHECK-MVE-NEXT: Cost Model: Found costs of 10 for: %i3264 = fptrunc double undef to float ; CHECK-MVE-NEXT: Cost Model: Found costs of 2 for: %v21632 = fptrunc <2 x float> undef to <2 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of 20 for: %v21664 = fptrunc <2 x double> undef to <2 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v41632 = fptrunc <4 x float> undef to <4 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of 40 for: %v41664 = fptrunc <4 x double> undef to <4 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:3 Lat:6 SizeLat:6 for: %v81632 = fptrunc <8 x float> undef to <8 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of 80 for: %v81664 = fptrunc <8 x double> undef to <8 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of 20 for: %v23264 = fptrunc <2 x double> undef to <2 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of 40 for: %v43264 = fptrunc <4 x double> undef to <4 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: store half %i1632, ptr undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: store half %i1664, ptr undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found costs of 1 for: store float %i3264, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x half> %v21632, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x half> %v21664, ptr undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x half> %v41632, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x half> %v41664, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x half> %v81632, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x half> %v81664, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x float> %v23264, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x float> %v43264, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-V8M-MAIN-LABEL: 'load_fptrunc' ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 10 for: %i1632 = fptrunc float undef to half ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 10 for: %i1664 = fptrunc double undef to half ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 10 for: %i3264 = fptrunc double undef to float ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v21632 = fptrunc <2 x float> undef to <2 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v21664 = fptrunc <2 x double> undef to <2 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v41632 = fptrunc <4 x float> undef to <4 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v41664 = fptrunc <4 x double> undef to <4 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 80 for: %v81632 = fptrunc <8 x float> undef to <8 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 80 for: %v81664 = fptrunc <8 x double> undef to <8 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v23264 = fptrunc <2 x double> undef to <2 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v43264 = fptrunc <4 x double> undef to <4 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: store half %i1632, ptr undef, align 2 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: store half %i1664, ptr undef, align 2 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: store float %i3264, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x half> %v21632, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x half> %v21664, ptr undef, align 4 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x half> %v41632, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x half> %v41664, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x half> %v81632, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x half> %v81664, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x float> %v23264, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x float> %v43264, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8M-BASE-LABEL: 'load_fptrunc' ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 10 for: %i1632 = fptrunc float undef to half ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 10 for: %i1664 = fptrunc double undef to half ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 10 for: %i3264 = fptrunc double undef to float ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v21632 = fptrunc <2 x float> undef to <2 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v21664 = fptrunc <2 x double> undef to <2 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v41632 = fptrunc <4 x float> undef to <4 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v41664 = fptrunc <4 x double> undef to <4 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 80 for: %v81632 = fptrunc <8 x float> undef to <8 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 80 for: %v81664 = fptrunc <8 x double> undef to <8 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v23264 = fptrunc <2 x double> undef to <2 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v43264 = fptrunc <4 x double> undef to <4 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: store half %i1632, ptr undef, align 2 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: store half %i1664, ptr undef, align 2 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: store float %i3264, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x half> %v21632, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x half> %v21664, ptr undef, align 4 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x half> %v41632, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x half> %v41664, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x half> %v81632, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x half> %v81664, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x float> %v23264, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x float> %v43264, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8R-LABEL: 'load_fptrunc' ; CHECK-V8R-NEXT: Cost Model: Found costs of 10 for: %i1632 = fptrunc float undef to half ; CHECK-V8R-NEXT: Cost Model: Found costs of 10 for: %i1664 = fptrunc double undef to half ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %i3264 = fptrunc double undef to float ; CHECK-V8R-NEXT: Cost Model: Found costs of 20 for: %v21632 = fptrunc <2 x float> undef to <2 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of 20 for: %v21664 = fptrunc <2 x double> undef to <2 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of 40 for: %v41632 = fptrunc <4 x float> undef to <4 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of 40 for: %v41664 = fptrunc <4 x double> undef to <4 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of 80 for: %v81632 = fptrunc <8 x float> undef to <8 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of 80 for: %v81664 = fptrunc <8 x double> undef to <8 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v23264 = fptrunc <2 x double> undef to <2 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v43264 = fptrunc <4 x double> undef to <4 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store half %i1632, ptr undef, align 2 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store half %i1664, ptr undef, align 2 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store float %i3264, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x half> %v21632, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <2 x half> %v21664, ptr undef, align 4 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x half> %v41632, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x half> %v41664, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x half> %v81632, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x half> %v81664, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <2 x float> %v23264, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: store <4 x float> %v43264, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; %i1632 = fptrunc float undef to half %i1664 = fptrunc double undef to half %i3264 = fptrunc double undef to float %v21632 = fptrunc <2 x float> undef to <2 x half> %v21664 = fptrunc <2 x double> undef to <2 x half> %v41632 = fptrunc <4 x float> undef to <4 x half> %v41664 = fptrunc <4 x double> undef to <4 x half> %v81632 = fptrunc <8 x float> undef to <8 x half> %v81664 = fptrunc <8 x double> undef to <8 x half> %v23264 = fptrunc <2 x double> undef to <2 x float> %v43264 = fptrunc <4 x double> undef to <4 x float> store half %i1632, ptr undef store half %i1664, ptr undef store float %i3264, ptr undef store <2 x half> %v21632, ptr undef store <2 x half> %v21664, ptr undef store <4 x half> %v41632, ptr undef store <4 x half> %v41664, ptr undef store <8 x half> %v81632, ptr undef store <8 x half> %v81664, ptr undef store <2 x float> %v23264, ptr undef store <4 x float> %v43264, ptr undef ret i32 undef } define i32 @maskedload_extends() { ; CHECK-NEON-LABEL: 'maskedload_extends' ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: %loadv2i8 = call <2 x i8> @llvm.masked.load.v2i8.p0(ptr align 1 undef, <2 x i1> undef, <2 x i8> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: %loadv4i8 = call <4 x i8> @llvm.masked.load.v4i8.p0(ptr align 1 undef, <4 x i1> undef, <4 x i8> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: %loadv8i8 = call <8 x i8> @llvm.masked.load.v8i8.p0(ptr align 1 undef, <8 x i1> undef, <8 x i8> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 128 for: %loadv16i8 = call <16 x i8> @llvm.masked.load.v16i8.p0(ptr align 1 undef, <16 x i1> undef, <16 x i8> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: %loadv2i16 = call <2 x i16> @llvm.masked.load.v2i16.p0(ptr align 2 undef, <2 x i1> undef, <2 x i16> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: %loadv4i16 = call <4 x i16> @llvm.masked.load.v4i16.p0(ptr align 2 undef, <4 x i1> undef, <4 x i16> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: %loadv8i16 = call <8 x i16> @llvm.masked.load.v8i16.p0(ptr align 2 undef, <8 x i1> undef, <8 x i16> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: %loadv2i32 = call <2 x i32> @llvm.masked.load.v2i32.p0(ptr align 4 undef, <2 x i1> undef, <2 x i32> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: %loadv4i32 = call <4 x i32> @llvm.masked.load.v4i32.p0(ptr align 4 undef, <4 x i1> undef, <4 x i32> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-MVE-LABEL: 'maskedload_extends' ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: %loadv2i8 = call <2 x i8> @llvm.masked.load.v2i8.p0(ptr align 1 undef, <2 x i1> undef, <2 x i8> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %loadv4i8 = call <4 x i8> @llvm.masked.load.v4i8.p0(ptr align 1 undef, <4 x i1> undef, <4 x i8> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %loadv8i8 = call <8 x i8> @llvm.masked.load.v8i8.p0(ptr align 1 undef, <8 x i1> undef, <8 x i8> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %loadv16i8 = call <16 x i8> @llvm.masked.load.v16i8.p0(ptr align 1 undef, <16 x i1> undef, <16 x i8> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: %loadv2i16 = call <2 x i16> @llvm.masked.load.v2i16.p0(ptr align 2 undef, <2 x i1> undef, <2 x i16> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %loadv4i16 = call <4 x i16> @llvm.masked.load.v4i16.p0(ptr align 2 undef, <4 x i1> undef, <4 x i16> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %loadv8i16 = call <8 x i16> @llvm.masked.load.v8i16.p0(ptr align 2 undef, <8 x i1> undef, <8 x i16> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: %loadv2i32 = call <2 x i32> @llvm.masked.load.v2i32.p0(ptr align 4 undef, <2 x i1> undef, <2 x i32> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %loadv4i32 = call <4 x i32> @llvm.masked.load.v4i32.p0(ptr align 4 undef, <4 x i1> undef, <4 x i32> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:10 Lat:20 SizeLat:20 for: %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:32 SizeLat:32 for: %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:32 SizeLat:32 for: %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:32 SizeLat:32 for: %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:32 SizeLat:32 for: %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:64 CodeSize:32 Lat:64 SizeLat:64 for: %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:64 CodeSize:32 Lat:64 SizeLat:64 for: %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:64 CodeSize:32 Lat:64 SizeLat:64 for: %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:64 CodeSize:32 Lat:64 SizeLat:64 for: %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:64 CodeSize:32 Lat:64 SizeLat:64 for: %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:64 CodeSize:32 Lat:64 SizeLat:64 for: %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:10 Lat:20 SizeLat:20 for: %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:32 SizeLat:32 for: %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:32 SizeLat:32 for: %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:32 SizeLat:32 for: %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:32 SizeLat:32 for: %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-V8M-MAIN-LABEL: 'maskedload_extends' ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: %loadv2i8 = call <2 x i8> @llvm.masked.load.v2i8.p0(ptr align 1 undef, <2 x i1> undef, <2 x i8> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: %loadv4i8 = call <4 x i8> @llvm.masked.load.v4i8.p0(ptr align 1 undef, <4 x i1> undef, <4 x i8> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: %loadv8i8 = call <8 x i8> @llvm.masked.load.v8i8.p0(ptr align 1 undef, <8 x i1> undef, <8 x i8> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 128 for: %loadv16i8 = call <16 x i8> @llvm.masked.load.v16i8.p0(ptr align 1 undef, <16 x i1> undef, <16 x i8> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: %loadv2i16 = call <2 x i16> @llvm.masked.load.v2i16.p0(ptr align 2 undef, <2 x i1> undef, <2 x i16> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: %loadv4i16 = call <4 x i16> @llvm.masked.load.v4i16.p0(ptr align 2 undef, <4 x i1> undef, <4 x i16> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: %loadv8i16 = call <8 x i16> @llvm.masked.load.v8i16.p0(ptr align 2 undef, <8 x i1> undef, <8 x i16> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: %loadv2i32 = call <2 x i32> @llvm.masked.load.v2i32.p0(ptr align 4 undef, <2 x i1> undef, <2 x i32> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: %loadv4i32 = call <4 x i32> @llvm.masked.load.v4i32.p0(ptr align 4 undef, <4 x i1> undef, <4 x i32> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:80 CodeSize:1 Lat:1 SizeLat:1 for: %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:80 CodeSize:1 Lat:1 SizeLat:1 for: %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8M-BASE-LABEL: 'maskedload_extends' ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: %loadv2i8 = call <2 x i8> @llvm.masked.load.v2i8.p0(ptr align 1 undef, <2 x i1> undef, <2 x i8> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: %loadv4i8 = call <4 x i8> @llvm.masked.load.v4i8.p0(ptr align 1 undef, <4 x i1> undef, <4 x i8> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: %loadv8i8 = call <8 x i8> @llvm.masked.load.v8i8.p0(ptr align 1 undef, <8 x i1> undef, <8 x i8> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 128 for: %loadv16i8 = call <16 x i8> @llvm.masked.load.v16i8.p0(ptr align 1 undef, <16 x i1> undef, <16 x i8> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: %loadv2i16 = call <2 x i16> @llvm.masked.load.v2i16.p0(ptr align 2 undef, <2 x i1> undef, <2 x i16> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: %loadv4i16 = call <4 x i16> @llvm.masked.load.v4i16.p0(ptr align 2 undef, <4 x i1> undef, <4 x i16> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: %loadv8i16 = call <8 x i16> @llvm.masked.load.v8i16.p0(ptr align 2 undef, <8 x i1> undef, <8 x i16> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: %loadv2i32 = call <2 x i32> @llvm.masked.load.v2i32.p0(ptr align 4 undef, <2 x i1> undef, <2 x i32> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: %loadv4i32 = call <4 x i32> @llvm.masked.load.v4i32.p0(ptr align 4 undef, <4 x i1> undef, <4 x i32> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:80 CodeSize:1 Lat:1 SizeLat:1 for: %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:80 CodeSize:1 Lat:1 SizeLat:1 for: %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:40 CodeSize:1 Lat:1 SizeLat:1 for: %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:20 CodeSize:1 Lat:1 SizeLat:1 for: %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8R-LABEL: 'maskedload_extends' ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: %loadv2i8 = call <2 x i8> @llvm.masked.load.v2i8.p0(ptr align 1 undef, <2 x i1> undef, <2 x i8> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: %loadv4i8 = call <4 x i8> @llvm.masked.load.v4i8.p0(ptr align 1 undef, <4 x i1> undef, <4 x i8> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: %loadv8i8 = call <8 x i8> @llvm.masked.load.v8i8.p0(ptr align 1 undef, <8 x i1> undef, <8 x i8> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 128 for: %loadv16i8 = call <16 x i8> @llvm.masked.load.v16i8.p0(ptr align 1 undef, <16 x i1> undef, <16 x i8> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: %loadv2i16 = call <2 x i16> @llvm.masked.load.v2i16.p0(ptr align 2 undef, <2 x i1> undef, <2 x i16> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: %loadv4i16 = call <4 x i16> @llvm.masked.load.v4i16.p0(ptr align 2 undef, <4 x i1> undef, <4 x i16> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: %loadv8i16 = call <8 x i16> @llvm.masked.load.v8i16.p0(ptr align 2 undef, <8 x i1> undef, <8 x i16> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: %loadv2i32 = call <2 x i32> @llvm.masked.load.v2i32.p0(ptr align 4 undef, <2 x i1> undef, <2 x i32> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: %loadv4i32 = call <4 x i32> @llvm.masked.load.v4i32.p0(ptr align 4 undef, <4 x i1> undef, <4 x i32> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; %loadv2i8 = call <2 x i8> @llvm.masked.load.v2i8.p0(ptr undef, i32 1, <2 x i1> undef, <2 x i8> undef) %loadv4i8 = call <4 x i8> @llvm.masked.load.v4i8.p0(ptr undef, i32 1, <4 x i1> undef, <4 x i8> undef) %loadv8i8 = call <8 x i8> @llvm.masked.load.v8i8.p0(ptr undef, i32 1, <8 x i1> undef, <8 x i8> undef) %loadv16i8 = call <16 x i8> @llvm.masked.load.v16i8.p0(ptr undef, i32 1, <16 x i1> undef, <16 x i8> undef) %loadv2i16 = call <2 x i16> @llvm.masked.load.v2i16.p0(ptr undef, i32 2, <2 x i1> undef, <2 x i16> undef) %loadv4i16 = call <4 x i16> @llvm.masked.load.v4i16.p0(ptr undef, i32 2, <4 x i1> undef, <4 x i16> undef) %loadv8i16 = call <8 x i16> @llvm.masked.load.v8i16.p0(ptr undef, i32 2, <8 x i1> undef, <8 x i16> undef) %loadv2i32 = call <2 x i32> @llvm.masked.load.v2i32.p0(ptr undef, i32 4, <2 x i1> undef, <2 x i32> undef) %loadv4i32 = call <4 x i32> @llvm.masked.load.v4i32.p0(ptr undef, i32 4, <4 x i1> undef, <4 x i32> undef) %v2816s = sext <2 x i8> %loadv2i8 to <2 x i16> %v2816u = zext <2 x i8> %loadv2i8 to <2 x i16> %v2832s = sext <2 x i8> %loadv2i8 to <2 x i32> %v2832u = zext <2 x i8> %loadv2i8 to <2 x i32> %v2864s = sext <2 x i8> %loadv2i8 to <2 x i64> %v2864u = zext <2 x i8> %loadv2i8 to <2 x i64> %v4816s = sext <4 x i8> %loadv4i8 to <4 x i16> %v4816u = zext <4 x i8> %loadv4i8 to <4 x i16> %v4832s = sext <4 x i8> %loadv4i8 to <4 x i32> %v4832u = zext <4 x i8> %loadv4i8 to <4 x i32> %v4864s = sext <4 x i8> %loadv4i8 to <4 x i64> %v4864u = zext <4 x i8> %loadv4i8 to <4 x i64> %v8816s = sext <8 x i8> %loadv8i8 to <8 x i16> %v8816u = zext <8 x i8> %loadv8i8 to <8 x i16> %v8832s = sext <8 x i8> %loadv8i8 to <8 x i32> %v8832u = zext <8 x i8> %loadv8i8 to <8 x i32> %v8864s = sext <8 x i8> %loadv8i8 to <8 x i64> %v8864u = zext <8 x i8> %loadv8i8 to <8 x i64> %v16816s = sext <16 x i8> %loadv16i8 to <16 x i16> %v16816u = zext <16 x i8> %loadv16i8 to <16 x i16> %v16832s = sext <16 x i8> %loadv16i8 to <16 x i32> %v16832u = zext <16 x i8> %loadv16i8 to <16 x i32> %v16864s = sext <16 x i8> %loadv16i8 to <16 x i64> %v16864u = zext <16 x i8> %loadv16i8 to <16 x i64> %v21632s = sext <2 x i16> %loadv2i16 to <2 x i32> %v21632u = zext <2 x i16> %loadv2i16 to <2 x i32> %v21664s = sext <2 x i16> %loadv2i16 to <2 x i64> %v21664u = zext <2 x i16> %loadv2i16 to <2 x i64> %v41632s = sext <4 x i16> %loadv4i16 to <4 x i32> %v41632u = zext <4 x i16> %loadv4i16 to <4 x i32> %v41664s = sext <4 x i16> %loadv4i16 to <4 x i64> %v41664u = zext <4 x i16> %loadv4i16 to <4 x i64> %v81632s = sext <8 x i16> %loadv8i16 to <8 x i32> %v81632u = zext <8 x i16> %loadv8i16 to <8 x i32> %v81664s = sext <8 x i16> %loadv8i16 to <8 x i64> %v81664u = zext <8 x i16> %loadv8i16 to <8 x i64> %v23264s = sext <2 x i32> %loadv2i32 to <2 x i64> %v23264u = zext <2 x i32> %loadv2i32 to <2 x i64> %v43264s = sext <4 x i32> %loadv4i32 to <4 x i64> %v43264u = zext <4 x i32> %loadv4i32 to <4 x i64> ret i32 undef } define i32 @maskedstore_trunc() { ; CHECK-NEON-LABEL: 'maskedstore_trunc' ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v2816 = trunc <2 x i16> undef to <2 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v2832 = trunc <2 x i32> undef to <2 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v2864 = trunc <2 x i64> undef to <2 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v4816 = trunc <4 x i16> undef to <4 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v4832 = trunc <4 x i32> undef to <4 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v4864 = trunc <4 x i64> undef to <4 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v8816 = trunc <8 x i16> undef to <8 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832 = trunc <8 x i32> undef to <8 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v8864 = trunc <8 x i64> undef to <8 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816 = trunc <16 x i16> undef to <16 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832 = trunc <16 x i32> undef to <16 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16864 = trunc <16 x i64> undef to <16 x i8> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v21632 = trunc <2 x i32> undef to <2 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v21664 = trunc <2 x i64> undef to <2 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v41632 = trunc <4 x i32> undef to <4 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v41664 = trunc <4 x i64> undef to <4 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632 = trunc <8 x i32> undef to <8 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81664 = trunc <8 x i64> undef to <8 x i16> ; CHECK-NEON-NEXT: Cost Model: Found costs of 1 for: %v23264 = trunc <2 x i64> undef to <2 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of 0 for: %v43264 = trunc <4 x i64> undef to <4 x i32> ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2816, ptr align 1 undef, <2 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2832, ptr align 1 undef, <2 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2864, ptr align 1 undef, <2 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4816, ptr align 1 undef, <4 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4832, ptr align 1 undef, <4 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4864, ptr align 1 undef, <4 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8816, ptr align 1 undef, <8 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8832, ptr align 1 undef, <8 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8864, ptr align 1 undef, <8 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16816, ptr align 1 undef, <16 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16832, ptr align 1 undef, <16 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16864, ptr align 1 undef, <16 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21632, ptr align 2 undef, <2 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21664, ptr align 2 undef, <2 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41632, ptr align 2 undef, <4 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41664, ptr align 2 undef, <4 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81632, ptr align 2 undef, <8 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81664, ptr align 2 undef, <8 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i32.p0(<2 x i32> %v23264, ptr align 4 undef, <2 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i32.p0(<4 x i32> %v43264, ptr align 4 undef, <4 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-MVE-LABEL: 'maskedstore_trunc' ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v2816 = trunc <2 x i16> undef to <2 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v2832 = trunc <2 x i32> undef to <2 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v2864 = trunc <2 x i64> undef to <2 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v4816 = trunc <4 x i16> undef to <4 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v4832 = trunc <4 x i32> undef to <4 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v4864 = trunc <4 x i64> undef to <4 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v8816 = trunc <8 x i16> undef to <8 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v8832 = trunc <8 x i32> undef to <8 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v8864 = trunc <8 x i64> undef to <8 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v16816 = trunc <16 x i16> undef to <16 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:3 Lat:6 SizeLat:6 for: %v16832 = trunc <16 x i32> undef to <16 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v16864 = trunc <16 x i64> undef to <16 x i8> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v21632 = trunc <2 x i32> undef to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v21664 = trunc <2 x i64> undef to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v41632 = trunc <4 x i32> undef to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v41664 = trunc <4 x i64> undef to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v81632 = trunc <8 x i32> undef to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %v81664 = trunc <8 x i64> undef to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found costs of 0 for: %v23264 = trunc <2 x i64> undef to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v43264 = trunc <4 x i64> undef to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2816, ptr align 1 undef, <2 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2832, ptr align 1 undef, <2 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2864, ptr align 1 undef, <2 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4816, ptr align 1 undef, <4 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4832, ptr align 1 undef, <4 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4864, ptr align 1 undef, <4 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8816, ptr align 1 undef, <8 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8832, ptr align 1 undef, <8 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8864, ptr align 1 undef, <8 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16816, ptr align 1 undef, <16 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16832, ptr align 1 undef, <16 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16864, ptr align 1 undef, <16 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21632, ptr align 2 undef, <2 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21664, ptr align 2 undef, <2 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41632, ptr align 2 undef, <4 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41664, ptr align 2 undef, <4 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81632, ptr align 2 undef, <8 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81664, ptr align 2 undef, <8 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i32.p0(<2 x i32> %v23264, ptr align 4 undef, <2 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v4i32.p0(<4 x i32> %v43264, ptr align 4 undef, <4 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-V8M-MAIN-LABEL: 'maskedstore_trunc' ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v2816 = trunc <2 x i16> undef to <2 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v2832 = trunc <2 x i32> undef to <2 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v2864 = trunc <2 x i64> undef to <2 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v4816 = trunc <4 x i16> undef to <4 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v4832 = trunc <4 x i32> undef to <4 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v4864 = trunc <4 x i64> undef to <4 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v8816 = trunc <8 x i16> undef to <8 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v8832 = trunc <8 x i32> undef to <8 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v8864 = trunc <8 x i64> undef to <8 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v16816 = trunc <16 x i16> undef to <16 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v16832 = trunc <16 x i32> undef to <16 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v16864 = trunc <16 x i64> undef to <16 x i8> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v21632 = trunc <2 x i32> undef to <2 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v21664 = trunc <2 x i64> undef to <2 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v41632 = trunc <4 x i32> undef to <4 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v41664 = trunc <4 x i64> undef to <4 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v81632 = trunc <8 x i32> undef to <8 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v81664 = trunc <8 x i64> undef to <8 x i16> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v23264 = trunc <2 x i64> undef to <2 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 0 for: %v43264 = trunc <4 x i64> undef to <4 x i32> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2816, ptr align 1 undef, <2 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2832, ptr align 1 undef, <2 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2864, ptr align 1 undef, <2 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4816, ptr align 1 undef, <4 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4832, ptr align 1 undef, <4 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4864, ptr align 1 undef, <4 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8816, ptr align 1 undef, <8 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8832, ptr align 1 undef, <8 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8864, ptr align 1 undef, <8 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16816, ptr align 1 undef, <16 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16832, ptr align 1 undef, <16 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16864, ptr align 1 undef, <16 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21632, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21664, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41632, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41664, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81632, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81664, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i32.p0(<2 x i32> %v23264, ptr align 4 undef, <2 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i32.p0(<4 x i32> %v43264, ptr align 4 undef, <4 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8M-BASE-LABEL: 'maskedstore_trunc' ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v2816 = trunc <2 x i16> undef to <2 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v2832 = trunc <2 x i32> undef to <2 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v2864 = trunc <2 x i64> undef to <2 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v4816 = trunc <4 x i16> undef to <4 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v4832 = trunc <4 x i32> undef to <4 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v4864 = trunc <4 x i64> undef to <4 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v8816 = trunc <8 x i16> undef to <8 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v8832 = trunc <8 x i32> undef to <8 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v8864 = trunc <8 x i64> undef to <8 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v16816 = trunc <16 x i16> undef to <16 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v16832 = trunc <16 x i32> undef to <16 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v16864 = trunc <16 x i64> undef to <16 x i8> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v21632 = trunc <2 x i32> undef to <2 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v21664 = trunc <2 x i64> undef to <2 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v41632 = trunc <4 x i32> undef to <4 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v41664 = trunc <4 x i64> undef to <4 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v81632 = trunc <8 x i32> undef to <8 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v81664 = trunc <8 x i64> undef to <8 x i16> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v23264 = trunc <2 x i64> undef to <2 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 0 for: %v43264 = trunc <4 x i64> undef to <4 x i32> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2816, ptr align 1 undef, <2 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2832, ptr align 1 undef, <2 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2864, ptr align 1 undef, <2 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4816, ptr align 1 undef, <4 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4832, ptr align 1 undef, <4 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4864, ptr align 1 undef, <4 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8816, ptr align 1 undef, <8 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8832, ptr align 1 undef, <8 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8864, ptr align 1 undef, <8 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16816, ptr align 1 undef, <16 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16832, ptr align 1 undef, <16 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16864, ptr align 1 undef, <16 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21632, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21664, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41632, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41664, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81632, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81664, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i32.p0(<2 x i32> %v23264, ptr align 4 undef, <2 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i32.p0(<4 x i32> %v43264, ptr align 4 undef, <4 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8R-LABEL: 'maskedstore_trunc' ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v2816 = trunc <2 x i16> undef to <2 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v2832 = trunc <2 x i32> undef to <2 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v2864 = trunc <2 x i64> undef to <2 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v4816 = trunc <4 x i16> undef to <4 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v4832 = trunc <4 x i32> undef to <4 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v4864 = trunc <4 x i64> undef to <4 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v8816 = trunc <8 x i16> undef to <8 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v8832 = trunc <8 x i32> undef to <8 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v8864 = trunc <8 x i64> undef to <8 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16816 = trunc <16 x i16> undef to <16 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %v16832 = trunc <16 x i32> undef to <16 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v16864 = trunc <16 x i64> undef to <16 x i8> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v21632 = trunc <2 x i32> undef to <2 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v21664 = trunc <2 x i64> undef to <2 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v41632 = trunc <4 x i32> undef to <4 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v41664 = trunc <4 x i64> undef to <4 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81632 = trunc <8 x i32> undef to <8 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %v81664 = trunc <8 x i64> undef to <8 x i16> ; CHECK-V8R-NEXT: Cost Model: Found costs of 1 for: %v23264 = trunc <2 x i64> undef to <2 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of 0 for: %v43264 = trunc <4 x i64> undef to <4 x i32> ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2816, ptr align 1 undef, <2 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2832, ptr align 1 undef, <2 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2864, ptr align 1 undef, <2 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4816, ptr align 1 undef, <4 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4832, ptr align 1 undef, <4 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4864, ptr align 1 undef, <4 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8816, ptr align 1 undef, <8 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8832, ptr align 1 undef, <8 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8864, ptr align 1 undef, <8 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16816, ptr align 1 undef, <16 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16832, ptr align 1 undef, <16 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 128 for: call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16864, ptr align 1 undef, <16 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21632, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21664, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41632, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41664, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81632, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81664, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2i32.p0(<2 x i32> %v23264, ptr align 4 undef, <2 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4i32.p0(<4 x i32> %v43264, ptr align 4 undef, <4 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; %v2816 = trunc <2 x i16> undef to <2 x i8> %v2832 = trunc <2 x i32> undef to <2 x i8> %v2864 = trunc <2 x i64> undef to <2 x i8> %v4816 = trunc <4 x i16> undef to <4 x i8> %v4832 = trunc <4 x i32> undef to <4 x i8> %v4864 = trunc <4 x i64> undef to <4 x i8> %v8816 = trunc <8 x i16> undef to <8 x i8> %v8832 = trunc <8 x i32> undef to <8 x i8> %v8864 = trunc <8 x i64> undef to <8 x i8> %v16816 = trunc <16 x i16> undef to <16 x i8> %v16832 = trunc <16 x i32> undef to <16 x i8> %v16864 = trunc <16 x i64> undef to <16 x i8> %v21632 = trunc <2 x i32> undef to <2 x i16> %v21664 = trunc <2 x i64> undef to <2 x i16> %v41632 = trunc <4 x i32> undef to <4 x i16> %v41664 = trunc <4 x i64> undef to <4 x i16> %v81632 = trunc <8 x i32> undef to <8 x i16> %v81664 = trunc <8 x i64> undef to <8 x i16> %v23264 = trunc <2 x i64> undef to <2 x i32> %v43264 = trunc <4 x i64> undef to <4 x i32> call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2816, ptr undef, i32 1, <2 x i1> undef) call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2832, ptr undef, i32 1, <2 x i1> undef) call void @llvm.masked.store.v2i8.p0(<2 x i8> %v2864, ptr undef, i32 1, <2 x i1> undef) call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4816, ptr undef, i32 1, <4 x i1> undef) call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4832, ptr undef, i32 1, <4 x i1> undef) call void @llvm.masked.store.v4i8.p0(<4 x i8> %v4864, ptr undef, i32 1, <4 x i1> undef) call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8816, ptr undef, i32 1, <8 x i1> undef) call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8832, ptr undef, i32 1, <8 x i1> undef) call void @llvm.masked.store.v8i8.p0(<8 x i8> %v8864, ptr undef, i32 1, <8 x i1> undef) call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16816, ptr undef, i32 1, <16 x i1> undef) call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16832, ptr undef, i32 1, <16 x i1> undef) call void @llvm.masked.store.v16i8.p0(<16 x i8> %v16864, ptr undef, i32 1, <16 x i1> undef) call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21632, ptr undef, i32 2, <2 x i1> undef) call void @llvm.masked.store.v2i16.p0(<2 x i16> %v21664, ptr undef, i32 2, <2 x i1> undef) call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41632, ptr undef, i32 2, <4 x i1> undef) call void @llvm.masked.store.v4i16.p0(<4 x i16> %v41664, ptr undef, i32 2, <4 x i1> undef) call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81632, ptr undef, i32 2, <8 x i1> undef) call void @llvm.masked.store.v8i16.p0(<8 x i16> %v81664, ptr undef, i32 2, <8 x i1> undef) call void @llvm.masked.store.v2i32.p0(<2 x i32> %v23264, ptr undef, i32 4, <2 x i1> undef) call void @llvm.masked.store.v4i32.p0(<4 x i32> %v43264, ptr undef, i32 4, <4 x i1> undef) ret i32 undef } define i32 @maskedload_fpextends() { ; CHECK-NEON-LABEL: 'maskedload_fpextends' ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: %loadv2f16 = call <2 x half> @llvm.masked.load.v2f16.p0(ptr align 2 undef, <2 x i1> undef, <2 x half> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: %loadv4f16 = call <4 x half> @llvm.masked.load.v4f16.p0(ptr align 2 undef, <4 x i1> undef, <4 x half> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: %loadv8f16 = call <8 x half> @llvm.masked.load.v8f16.p0(ptr align 2 undef, <8 x i1> undef, <8 x half> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 128 for: %loadv16f16 = call <16 x half> @llvm.masked.load.v16f16.p0(ptr align 2 undef, <16 x i1> undef, <16 x half> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: %loadv2f32 = call <2 x float> @llvm.masked.load.v2f32.p0(ptr align 4 undef, <2 x i1> undef, <2 x float> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: %loadv4f32 = call <4 x float> @llvm.masked.load.v4f32.p0(ptr align 4 undef, <4 x i1> undef, <4 x float> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: %loadv8f32 = call <8 x float> @llvm.masked.load.v8f32.p0(ptr align 4 undef, <8 x i1> undef, <8 x float> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 20 for: %v1 = fpext <2 x half> %loadv2f16 to <2 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of 40 for: %v2 = fpext <4 x half> %loadv4f16 to <4 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of 80 for: %v3 = fpext <8 x half> %loadv8f16 to <8 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of 160 for: %v4 = fpext <16 x half> %loadv16f16 to <16 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of 20 for: %v5 = fpext <2 x half> %loadv2f16 to <2 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of 40 for: %v6 = fpext <4 x half> %loadv4f16 to <4 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of 80 for: %v7 = fpext <8 x half> %loadv8f16 to <8 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of 160 for: %v8 = fpext <16 x half> %loadv16f16 to <16 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v9 = fpext <2 x float> %loadv2f32 to <2 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v10 = fpext <4 x float> %loadv4f32 to <4 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v11 = fpext <8 x float> %loadv8f32 to <8 x double> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16ou = load <4 x half>, ptr undef, align 8 ; CHECK-NEON-NEXT: Cost Model: Found costs of 40 for: %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-MVE-LABEL: 'maskedload_fpextends' ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: %loadv2f16 = call <2 x half> @llvm.masked.load.v2f16.p0(ptr align 2 undef, <2 x i1> undef, <2 x half> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 32 for: %loadv4f16 = call <4 x half> @llvm.masked.load.v4f16.p0(ptr align 2 undef, <4 x i1> undef, <4 x half> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %loadv8f16 = call <8 x half> @llvm.masked.load.v8f16.p0(ptr align 2 undef, <8 x i1> undef, <8 x half> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 128 for: %loadv16f16 = call <16 x half> @llvm.masked.load.v16f16.p0(ptr align 2 undef, <16 x i1> undef, <16 x half> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: %loadv2f32 = call <2 x float> @llvm.masked.load.v2f32.p0(ptr align 4 undef, <2 x i1> undef, <2 x float> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %loadv4f32 = call <4 x float> @llvm.masked.load.v4f32.p0(ptr align 4 undef, <4 x i1> undef, <4 x float> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 64 for: %loadv8f32 = call <8 x float> @llvm.masked.load.v8f32.p0(ptr align 4 undef, <8 x i1> undef, <8 x float> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 2 for: %v1 = fpext <2 x half> %loadv2f16 to <2 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v2 = fpext <4 x half> %loadv4f16 to <4 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:32 SizeLat:32 for: %v3 = fpext <8 x half> %loadv8f16 to <8 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:64 CodeSize:32 Lat:64 SizeLat:64 for: %v4 = fpext <16 x half> %loadv16f16 to <16 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of 20 for: %v5 = fpext <2 x half> %loadv2f16 to <2 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 40 for: %v6 = fpext <4 x half> %loadv4f16 to <4 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 80 for: %v7 = fpext <8 x half> %loadv8f16 to <8 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 160 for: %v8 = fpext <16 x half> %loadv16f16 to <16 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 20 for: %v9 = fpext <2 x float> %loadv2f32 to <2 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 40 for: %v10 = fpext <4 x float> %loadv4f32 to <4 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of 80 for: %v11 = fpext <8 x float> %loadv8f32 to <8 x double> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16ou = load <4 x half>, ptr undef, align 8 ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-V8M-MAIN-LABEL: 'maskedload_fpextends' ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: %loadv2f16 = call <2 x half> @llvm.masked.load.v2f16.p0(ptr align 2 undef, <2 x i1> undef, <2 x half> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: %loadv4f16 = call <4 x half> @llvm.masked.load.v4f16.p0(ptr align 2 undef, <4 x i1> undef, <4 x half> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: %loadv8f16 = call <8 x half> @llvm.masked.load.v8f16.p0(ptr align 2 undef, <8 x i1> undef, <8 x half> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 128 for: %loadv16f16 = call <16 x half> @llvm.masked.load.v16f16.p0(ptr align 2 undef, <16 x i1> undef, <16 x half> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: %loadv2f32 = call <2 x float> @llvm.masked.load.v2f32.p0(ptr align 4 undef, <2 x i1> undef, <2 x float> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: %loadv4f32 = call <4 x float> @llvm.masked.load.v4f32.p0(ptr align 4 undef, <4 x i1> undef, <4 x float> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: %loadv8f32 = call <8 x float> @llvm.masked.load.v8f32.p0(ptr align 4 undef, <8 x i1> undef, <8 x float> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v1 = fpext <2 x half> %loadv2f16 to <2 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v2 = fpext <4 x half> %loadv4f16 to <4 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 80 for: %v3 = fpext <8 x half> %loadv8f16 to <8 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 160 for: %v4 = fpext <16 x half> %loadv16f16 to <16 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v5 = fpext <2 x half> %loadv2f16 to <2 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v6 = fpext <4 x half> %loadv4f16 to <4 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 80 for: %v7 = fpext <8 x half> %loadv8f16 to <8 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 160 for: %v8 = fpext <16 x half> %loadv16f16 to <16 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v9 = fpext <2 x float> %loadv2f32 to <2 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v10 = fpext <4 x float> %loadv4f32 to <4 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 80 for: %v11 = fpext <8 x float> %loadv8f32 to <8 x double> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16ou = load <4 x half>, ptr undef, align 8 ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8M-BASE-LABEL: 'maskedload_fpextends' ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: %loadv2f16 = call <2 x half> @llvm.masked.load.v2f16.p0(ptr align 2 undef, <2 x i1> undef, <2 x half> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: %loadv4f16 = call <4 x half> @llvm.masked.load.v4f16.p0(ptr align 2 undef, <4 x i1> undef, <4 x half> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: %loadv8f16 = call <8 x half> @llvm.masked.load.v8f16.p0(ptr align 2 undef, <8 x i1> undef, <8 x half> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 128 for: %loadv16f16 = call <16 x half> @llvm.masked.load.v16f16.p0(ptr align 2 undef, <16 x i1> undef, <16 x half> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: %loadv2f32 = call <2 x float> @llvm.masked.load.v2f32.p0(ptr align 4 undef, <2 x i1> undef, <2 x float> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: %loadv4f32 = call <4 x float> @llvm.masked.load.v4f32.p0(ptr align 4 undef, <4 x i1> undef, <4 x float> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: %loadv8f32 = call <8 x float> @llvm.masked.load.v8f32.p0(ptr align 4 undef, <8 x i1> undef, <8 x float> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v1 = fpext <2 x half> %loadv2f16 to <2 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v2 = fpext <4 x half> %loadv4f16 to <4 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 80 for: %v3 = fpext <8 x half> %loadv8f16 to <8 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 160 for: %v4 = fpext <16 x half> %loadv16f16 to <16 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v5 = fpext <2 x half> %loadv2f16 to <2 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v6 = fpext <4 x half> %loadv4f16 to <4 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 80 for: %v7 = fpext <8 x half> %loadv8f16 to <8 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 160 for: %v8 = fpext <16 x half> %loadv16f16 to <16 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v9 = fpext <2 x float> %loadv2f32 to <2 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v10 = fpext <4 x float> %loadv4f32 to <4 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 80 for: %v11 = fpext <8 x float> %loadv8f32 to <8 x double> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16ou = load <4 x half>, ptr undef, align 8 ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8R-LABEL: 'maskedload_fpextends' ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: %loadv2f16 = call <2 x half> @llvm.masked.load.v2f16.p0(ptr align 2 undef, <2 x i1> undef, <2 x half> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: %loadv4f16 = call <4 x half> @llvm.masked.load.v4f16.p0(ptr align 2 undef, <4 x i1> undef, <4 x half> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: %loadv8f16 = call <8 x half> @llvm.masked.load.v8f16.p0(ptr align 2 undef, <8 x i1> undef, <8 x half> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 128 for: %loadv16f16 = call <16 x half> @llvm.masked.load.v16f16.p0(ptr align 2 undef, <16 x i1> undef, <16 x half> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: %loadv2f32 = call <2 x float> @llvm.masked.load.v2f32.p0(ptr align 4 undef, <2 x i1> undef, <2 x float> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: %loadv4f32 = call <4 x float> @llvm.masked.load.v4f32.p0(ptr align 4 undef, <4 x i1> undef, <4 x float> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: %loadv8f32 = call <8 x float> @llvm.masked.load.v8f32.p0(ptr align 4 undef, <8 x i1> undef, <8 x float> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 20 for: %v1 = fpext <2 x half> %loadv2f16 to <2 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of 40 for: %v2 = fpext <4 x half> %loadv4f16 to <4 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of 80 for: %v3 = fpext <8 x half> %loadv8f16 to <8 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of 160 for: %v4 = fpext <16 x half> %loadv16f16 to <16 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of 20 for: %v5 = fpext <2 x half> %loadv2f16 to <2 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of 40 for: %v6 = fpext <4 x half> %loadv4f16 to <4 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of 80 for: %v7 = fpext <8 x half> %loadv8f16 to <8 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of 160 for: %v8 = fpext <16 x half> %loadv16f16 to <16 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v9 = fpext <2 x float> %loadv2f32 to <2 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v10 = fpext <4 x float> %loadv4f32 to <4 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %v11 = fpext <8 x float> %loadv8f32 to <8 x double> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %loadv4f16ou = load <4 x half>, ptr undef, align 8 ; CHECK-V8R-NEXT: Cost Model: Found costs of 40 for: %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; %loadv2f16 = call <2 x half> @llvm.masked.load.v2f16.p0(ptr undef, i32 2, <2 x i1> undef, <2 x half> undef) %loadv4f16 = call <4 x half> @llvm.masked.load.v4f16.p0(ptr undef, i32 2, <4 x i1> undef, <4 x half> undef) %loadv8f16 = call <8 x half> @llvm.masked.load.v8f16.p0(ptr undef, i32 2, <8 x i1> undef, <8 x half> undef) %loadv16f16 = call <16 x half> @llvm.masked.load.v16f16.p0(ptr undef, i32 2, <16 x i1> undef, <16 x half> undef) %loadv2f32 = call <2 x float> @llvm.masked.load.v2f32.p0(ptr undef, i32 4, <2 x i1> undef, <2 x float> undef) %loadv4f32 = call <4 x float> @llvm.masked.load.v4f32.p0(ptr undef, i32 4, <4 x i1> undef, <4 x float> undef) %loadv8f32 = call <8 x float> @llvm.masked.load.v8f32.p0(ptr undef, i32 4, <8 x i1> undef, <8 x float> undef) %v1 = fpext <2 x half> %loadv2f16 to <2 x float> %v2 = fpext <4 x half> %loadv4f16 to <4 x float> %v3 = fpext <8 x half> %loadv8f16 to <8 x float> %v4 = fpext <16 x half> %loadv16f16 to <16 x float> %v5 = fpext <2 x half> %loadv2f16 to <2 x double> %v6 = fpext <4 x half> %loadv4f16 to <4 x double> %v7 = fpext <8 x half> %loadv8f16 to <8 x double> %v8 = fpext <16 x half> %loadv16f16 to <16 x double> %v9 = fpext <2 x float> %loadv2f32 to <2 x double> %v10 = fpext <4 x float> %loadv4f32 to <4 x double> %v11 = fpext <8 x float> %loadv8f32 to <8 x double> %loadv4f16ou = load <4 x half>, ptr undef %v2ou = fpext <4 x half> %loadv4f16ou to <4 x float> ret i32 undef } define i32 @maskedload_fptrunc() { ; CHECK-NEON-LABEL: 'maskedload_fptrunc' ; CHECK-NEON-NEXT: Cost Model: Found costs of 20 for: %v21632 = fptrunc <2 x float> undef to <2 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of 20 for: %v21664 = fptrunc <2 x double> undef to <2 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of 40 for: %v41632 = fptrunc <4 x float> undef to <4 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of 40 for: %v41664 = fptrunc <4 x double> undef to <4 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of 80 for: %v81632 = fptrunc <8 x float> undef to <8 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of 80 for: %v81664 = fptrunc <8 x double> undef to <8 x half> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v23264 = fptrunc <2 x double> undef to <2 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v43264 = fptrunc <4 x double> undef to <4 x float> ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f16.p0(<2 x half> %v21632, ptr align 2 undef, <2 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f16.p0(<2 x half> %v21664, ptr align 2 undef, <2 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f16.p0(<4 x half> %v41632, ptr align 2 undef, <4 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f16.p0(<4 x half> %v41664, ptr align 2 undef, <4 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8f16.p0(<8 x half> %v81632, ptr align 2 undef, <8 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8f16.p0(<8 x half> %v81664, ptr align 2 undef, <8 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f32.p0(<2 x float> %v23264, ptr align 4 undef, <2 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f32.p0(<4 x float> %v43264, ptr align 4 undef, <4 x i1> undef) ; CHECK-NEON-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-MVE-LABEL: 'maskedload_fptrunc' ; CHECK-MVE-NEXT: Cost Model: Found costs of 2 for: %v21632 = fptrunc <2 x float> undef to <2 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of 20 for: %v21664 = fptrunc <2 x double> undef to <2 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v41632 = fptrunc <4 x float> undef to <4 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of 40 for: %v41664 = fptrunc <4 x double> undef to <4 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:6 CodeSize:3 Lat:6 SizeLat:6 for: %v81632 = fptrunc <8 x float> undef to <8 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of 80 for: %v81664 = fptrunc <8 x double> undef to <8 x half> ; CHECK-MVE-NEXT: Cost Model: Found costs of 20 for: %v23264 = fptrunc <2 x double> undef to <2 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of 40 for: %v43264 = fptrunc <4 x double> undef to <4 x float> ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f16.p0(<2 x half> %v21632, ptr align 2 undef, <2 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f16.p0(<2 x half> %v21664, ptr align 2 undef, <2 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f16.p0(<4 x half> %v41632, ptr align 2 undef, <4 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f16.p0(<4 x half> %v41664, ptr align 2 undef, <4 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v8f16.p0(<8 x half> %v81632, ptr align 2 undef, <8 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v8f16.p0(<8 x half> %v81664, ptr align 2 undef, <8 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f32.p0(<2 x float> %v23264, ptr align 4 undef, <2 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: call void @llvm.masked.store.v4f32.p0(<4 x float> %v43264, ptr align 4 undef, <4 x i1> undef) ; CHECK-MVE-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; ; CHECK-V8M-MAIN-LABEL: 'maskedload_fptrunc' ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v21632 = fptrunc <2 x float> undef to <2 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v21664 = fptrunc <2 x double> undef to <2 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v41632 = fptrunc <4 x float> undef to <4 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v41664 = fptrunc <4 x double> undef to <4 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 80 for: %v81632 = fptrunc <8 x float> undef to <8 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 80 for: %v81664 = fptrunc <8 x double> undef to <8 x half> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 20 for: %v23264 = fptrunc <2 x double> undef to <2 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 40 for: %v43264 = fptrunc <4 x double> undef to <4 x float> ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f16.p0(<2 x half> %v21632, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f16.p0(<2 x half> %v21664, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f16.p0(<4 x half> %v41632, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f16.p0(<4 x half> %v41664, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8f16.p0(<8 x half> %v81632, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8f16.p0(<8 x half> %v81664, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f32.p0(<2 x float> %v23264, ptr align 4 undef, <2 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f32.p0(<4 x float> %v43264, ptr align 4 undef, <4 x i1> undef) ; CHECK-V8M-MAIN-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8M-BASE-LABEL: 'maskedload_fptrunc' ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v21632 = fptrunc <2 x float> undef to <2 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v21664 = fptrunc <2 x double> undef to <2 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v41632 = fptrunc <4 x float> undef to <4 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v41664 = fptrunc <4 x double> undef to <4 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 80 for: %v81632 = fptrunc <8 x float> undef to <8 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 80 for: %v81664 = fptrunc <8 x double> undef to <8 x half> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 20 for: %v23264 = fptrunc <2 x double> undef to <2 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 40 for: %v43264 = fptrunc <4 x double> undef to <4 x float> ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f16.p0(<2 x half> %v21632, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f16.p0(<2 x half> %v21664, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f16.p0(<4 x half> %v41632, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f16.p0(<4 x half> %v41664, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8f16.p0(<8 x half> %v81632, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8f16.p0(<8 x half> %v81664, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f32.p0(<2 x float> %v23264, ptr align 4 undef, <2 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f32.p0(<4 x float> %v43264, ptr align 4 undef, <4 x i1> undef) ; CHECK-V8M-BASE-NEXT: Cost Model: Found costs of 1 for: ret i32 undef ; ; CHECK-V8R-LABEL: 'maskedload_fptrunc' ; CHECK-V8R-NEXT: Cost Model: Found costs of 20 for: %v21632 = fptrunc <2 x float> undef to <2 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of 20 for: %v21664 = fptrunc <2 x double> undef to <2 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of 40 for: %v41632 = fptrunc <4 x float> undef to <4 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of 40 for: %v41664 = fptrunc <4 x double> undef to <4 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of 80 for: %v81632 = fptrunc <8 x float> undef to <8 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of 80 for: %v81664 = fptrunc <8 x double> undef to <8 x half> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %v23264 = fptrunc <2 x double> undef to <2 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %v43264 = fptrunc <4 x double> undef to <4 x float> ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f16.p0(<2 x half> %v21632, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f16.p0(<2 x half> %v21664, ptr align 2 undef, <2 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f16.p0(<4 x half> %v41632, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f16.p0(<4 x half> %v41664, ptr align 2 undef, <4 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8f16.p0(<8 x half> %v81632, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 64 for: call void @llvm.masked.store.v8f16.p0(<8 x half> %v81664, ptr align 2 undef, <8 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 16 for: call void @llvm.masked.store.v2f32.p0(<2 x float> %v23264, ptr align 4 undef, <2 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of 32 for: call void @llvm.masked.store.v4f32.p0(<4 x float> %v43264, ptr align 4 undef, <4 x i1> undef) ; CHECK-V8R-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef ; %v21632 = fptrunc <2 x float> undef to <2 x half> %v21664 = fptrunc <2 x double> undef to <2 x half> %v41632 = fptrunc <4 x float> undef to <4 x half> %v41664 = fptrunc <4 x double> undef to <4 x half> %v81632 = fptrunc <8 x float> undef to <8 x half> %v81664 = fptrunc <8 x double> undef to <8 x half> %v23264 = fptrunc <2 x double> undef to <2 x float> %v43264 = fptrunc <4 x double> undef to <4 x float> call void @llvm.masked.store.v2f16.p0(<2 x half> %v21632, ptr undef, i32 2, <2 x i1> undef) call void @llvm.masked.store.v2f16.p0(<2 x half> %v21664, ptr undef, i32 2, <2 x i1> undef) call void @llvm.masked.store.v4f16.p0(<4 x half> %v41632, ptr undef, i32 2, <4 x i1> undef) call void @llvm.masked.store.v4f16.p0(<4 x half> %v41664, ptr undef, i32 2, <4 x i1> undef) call void @llvm.masked.store.v8f16.p0(<8 x half> %v81632, ptr undef, i32 2, <8 x i1> undef) call void @llvm.masked.store.v8f16.p0(<8 x half> %v81664, ptr undef, i32 2, <8 x i1> undef) call void @llvm.masked.store.v2f32.p0(<2 x float> %v23264, ptr undef, i32 4, <2 x i1> undef) call void @llvm.masked.store.v4f32.p0(<4 x float> %v43264, ptr undef, i32 4, <4 x i1> undef) ret i32 undef }