1ac89b039SSimon Pilgrim; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py 2ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+sse2 | FileCheck %s -check-prefixes=X86,SSE2 3ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+sse4.2 | FileCheck %s -check-prefixes=X86,SSE42 4ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+avx | FileCheck %s -check-prefixes=X86,AVX1 5ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+avx2 | FileCheck %s -check-prefixes=X86,AVX2 6c1af46ccSSimon Pilgrim; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+avx512f | FileCheck %s -check-prefixes=X86,AVX512,AVX512F 7c1af46ccSSimon Pilgrim; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+avx512vl,avx512bw,avx512dq | FileCheck %s -check-prefixes=X86,AVX512,AVX512BW 8ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+sse2 | FileCheck %s -check-prefixes=X64,SSE2 9ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+sse4.2 | FileCheck %s -check-prefixes=X64,SSE42 10ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+avx | FileCheck %s -check-prefixes=X64,AVX1 11ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+avx2 | FileCheck %s -check-prefixes=X64,AVX2 12c1af46ccSSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+avx512f | FileCheck %s -check-prefixes=X64,AVX512,AVX512F 13c1af46ccSSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+avx512vl,+avx512bw,+avx512dq | FileCheck %s -check-prefixes=X64,AVX512,AVX512BW 14ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+xop | FileCheck %s -check-prefixes=XOP 15ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+xop,+avx2 | FileCheck %s -check-prefixes=XOP 16ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+gfni,+ssse3 | FileCheck %s -check-prefixes=GFNISSE 17ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+gfni,+avx | FileCheck %s -check-prefixes=GFNIAVX 18ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+gfni,+avx2 | FileCheck %s -check-prefixes=GFNIAVX2 19ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+gfni,+avx512f | FileCheck %s -check-prefixes=GFNIAVX512F 20ac89b039SSimon Pilgrim; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+gfni,+avx512bw | FileCheck %s -check-prefixes=GFNIAVX512BW 21ac89b039SSimon Pilgrim 22ac89b039SSimon Pilgrim; Verify the cost of scalar bitreverse instructions. 23ac89b039SSimon Pilgrim 24ac89b039SSimon Pilgrimdeclare i64 @llvm.bitreverse.i64(i64) 25ac89b039SSimon Pilgrimdeclare i32 @llvm.bitreverse.i32(i32) 26ac89b039SSimon Pilgrimdeclare i16 @llvm.bitreverse.i16(i16) 27ac89b039SSimon Pilgrimdeclare i8 @llvm.bitreverse.i8(i8) 28ac89b039SSimon Pilgrim 29ac89b039SSimon Pilgrimdefine i64 @var_bitreverse_i64(i64 %a) { 30ac89b039SSimon Pilgrim; X86-LABEL: 'var_bitreverse_i64' 31c1af46ccSSimon Pilgrim; X86-NEXT: Cost Model: Found an estimated cost of 34 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 32ac89b039SSimon Pilgrim; X86-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 33ac89b039SSimon Pilgrim; 34ac89b039SSimon Pilgrim; X64-LABEL: 'var_bitreverse_i64' 35c1af46ccSSimon Pilgrim; X64-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 36ac89b039SSimon Pilgrim; X64-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 37ac89b039SSimon Pilgrim; 38ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_i64' 39c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 40ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 41ac89b039SSimon Pilgrim; 42ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_i64' 43*e4904351SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 44ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 45ac89b039SSimon Pilgrim; 46ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_i64' 47*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 48ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 49ac89b039SSimon Pilgrim; 50ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_i64' 51*e4904351SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 52ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 53ac89b039SSimon Pilgrim; 54ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_i64' 55*e4904351SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 56ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 57ac89b039SSimon Pilgrim; 58ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_i64' 59*e4904351SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 60ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 61ac89b039SSimon Pilgrim; 62ac89b039SSimon Pilgrim %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 63ac89b039SSimon Pilgrim ret i64 %bitreverse 64ac89b039SSimon Pilgrim} 65ac89b039SSimon Pilgrim 66ac89b039SSimon Pilgrimdefine i32 @var_bitreverse_i32(i32 %a) { 67ac89b039SSimon Pilgrim; X86-LABEL: 'var_bitreverse_i32' 68c1af46ccSSimon Pilgrim; X86-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 69ac89b039SSimon Pilgrim; X86-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 70ac89b039SSimon Pilgrim; 71ac89b039SSimon Pilgrim; X64-LABEL: 'var_bitreverse_i32' 72c1af46ccSSimon Pilgrim; X64-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 73ac89b039SSimon Pilgrim; X64-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 74ac89b039SSimon Pilgrim; 75ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_i32' 76c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 77ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 78ac89b039SSimon Pilgrim; 79ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_i32' 80*e4904351SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 81ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 82ac89b039SSimon Pilgrim; 83ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_i32' 84*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 85ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 86ac89b039SSimon Pilgrim; 87ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_i32' 88*e4904351SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 89ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 90ac89b039SSimon Pilgrim; 91ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_i32' 92*e4904351SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 93ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 94ac89b039SSimon Pilgrim; 95ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_i32' 96*e4904351SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 97ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 98ac89b039SSimon Pilgrim; 99ac89b039SSimon Pilgrim %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 100ac89b039SSimon Pilgrim ret i32 %bitreverse 101ac89b039SSimon Pilgrim} 102ac89b039SSimon Pilgrim 103ac89b039SSimon Pilgrimdefine i16 @var_bitreverse_i16(i16 %a) { 104ac89b039SSimon Pilgrim; X86-LABEL: 'var_bitreverse_i16' 105c1af46ccSSimon Pilgrim; X86-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 106ac89b039SSimon Pilgrim; X86-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 107ac89b039SSimon Pilgrim; 108ac89b039SSimon Pilgrim; X64-LABEL: 'var_bitreverse_i16' 109c1af46ccSSimon Pilgrim; X64-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 110ac89b039SSimon Pilgrim; X64-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 111ac89b039SSimon Pilgrim; 112ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_i16' 113c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 114ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 115ac89b039SSimon Pilgrim; 116ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_i16' 117*e4904351SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 118ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 119ac89b039SSimon Pilgrim; 120ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_i16' 121*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 122ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 123ac89b039SSimon Pilgrim; 124ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_i16' 125*e4904351SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 126ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 127ac89b039SSimon Pilgrim; 128ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_i16' 129*e4904351SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 130ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 131ac89b039SSimon Pilgrim; 132ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_i16' 133*e4904351SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 134ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 135ac89b039SSimon Pilgrim; 136ac89b039SSimon Pilgrim %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 137ac89b039SSimon Pilgrim ret i16 %bitreverse 138ac89b039SSimon Pilgrim} 139ac89b039SSimon Pilgrim 140ac89b039SSimon Pilgrimdefine i8 @var_bitreverse_i8(i8 %a) { 141ac89b039SSimon Pilgrim; X86-LABEL: 'var_bitreverse_i8' 142c1af46ccSSimon Pilgrim; X86-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 143ac89b039SSimon Pilgrim; X86-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 144ac89b039SSimon Pilgrim; 145ac89b039SSimon Pilgrim; X64-LABEL: 'var_bitreverse_i8' 146c1af46ccSSimon Pilgrim; X64-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 147ac89b039SSimon Pilgrim; X64-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 148ac89b039SSimon Pilgrim; 149ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_i8' 150c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 151ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 152ac89b039SSimon Pilgrim; 153ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_i8' 154*e4904351SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 155ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 156ac89b039SSimon Pilgrim; 157ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_i8' 158*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 159ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 160ac89b039SSimon Pilgrim; 161ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_i8' 162*e4904351SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 163ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 164ac89b039SSimon Pilgrim; 165ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_i8' 166*e4904351SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 167ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 168ac89b039SSimon Pilgrim; 169ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_i8' 170*e4904351SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 171ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 172ac89b039SSimon Pilgrim; 173ac89b039SSimon Pilgrim %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 174ac89b039SSimon Pilgrim ret i8 %bitreverse 175ac89b039SSimon Pilgrim} 176ac89b039SSimon Pilgrim 177ac89b039SSimon Pilgrim; Verify the cost of vector bitreverse instructions. 178ac89b039SSimon Pilgrim 179ac89b039SSimon Pilgrimdeclare <2 x i64> @llvm.bitreverse.v2i64(<2 x i64>) 180ac89b039SSimon Pilgrimdeclare <4 x i32> @llvm.bitreverse.v4i32(<4 x i32>) 181ac89b039SSimon Pilgrimdeclare <8 x i16> @llvm.bitreverse.v8i16(<8 x i16>) 182ac89b039SSimon Pilgrimdeclare <16 x i8> @llvm.bitreverse.v16i8(<16 x i8>) 183ac89b039SSimon Pilgrim 184ac89b039SSimon Pilgrimdeclare <4 x i64> @llvm.bitreverse.v4i64(<4 x i64>) 185ac89b039SSimon Pilgrimdeclare <8 x i32> @llvm.bitreverse.v8i32(<8 x i32>) 186ac89b039SSimon Pilgrimdeclare <16 x i16> @llvm.bitreverse.v16i16(<16 x i16>) 187ac89b039SSimon Pilgrimdeclare <32 x i8> @llvm.bitreverse.v32i8(<32 x i8>) 188ac89b039SSimon Pilgrim 189ac89b039SSimon Pilgrimdeclare <8 x i64> @llvm.bitreverse.v8i64(<8 x i64>) 190ac89b039SSimon Pilgrimdeclare <16 x i32> @llvm.bitreverse.v16i32(<16 x i32>) 191ac89b039SSimon Pilgrimdeclare <32 x i16> @llvm.bitreverse.v32i16(<32 x i16>) 192ac89b039SSimon Pilgrimdeclare <64 x i8> @llvm.bitreverse.v64i8(<64 x i8>) 193ac89b039SSimon Pilgrim 194ac89b039SSimon Pilgrimdefine <2 x i64> @var_bitreverse_v2i64(<2 x i64> %a) { 195ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v2i64' 196c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 197ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 198ac89b039SSimon Pilgrim; 199ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v2i64' 200c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 201ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 202ac89b039SSimon Pilgrim; 203ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v2i64' 204c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 205ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 206ac89b039SSimon Pilgrim; 207ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v2i64' 208c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 209ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 210ac89b039SSimon Pilgrim; 211ac89b039SSimon Pilgrim; AVX512-LABEL: 'var_bitreverse_v2i64' 212c1af46ccSSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 213ac89b039SSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 214ac89b039SSimon Pilgrim; 215ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v2i64' 216c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 217ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 218ac89b039SSimon Pilgrim; 219ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v2i64' 220ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 221ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 222ac89b039SSimon Pilgrim; 223ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v2i64' 224ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 225ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 226ac89b039SSimon Pilgrim; 227ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v2i64' 228ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 229ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 230ac89b039SSimon Pilgrim; 231ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v2i64' 232ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 233ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 234ac89b039SSimon Pilgrim; 235ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v2i64' 236ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 237ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 238ac89b039SSimon Pilgrim; 239ac89b039SSimon Pilgrim %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 240ac89b039SSimon Pilgrim ret <2 x i64> %bitreverse 241ac89b039SSimon Pilgrim} 242ac89b039SSimon Pilgrim 243ac89b039SSimon Pilgrimdefine <4 x i64> @var_bitreverse_v4i64(<4 x i64> %a) { 244ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v4i64' 245c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 246ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 247ac89b039SSimon Pilgrim; 248ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v4i64' 249c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 250ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 251ac89b039SSimon Pilgrim; 252ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v4i64' 253c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 254ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 255ac89b039SSimon Pilgrim; 256ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v4i64' 257c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 258ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 259ac89b039SSimon Pilgrim; 260ac89b039SSimon Pilgrim; AVX512-LABEL: 'var_bitreverse_v4i64' 261c1af46ccSSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 262ac89b039SSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 263ac89b039SSimon Pilgrim; 264ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v4i64' 265c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 266ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 267ac89b039SSimon Pilgrim; 268ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v4i64' 269ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 270ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 271ac89b039SSimon Pilgrim; 272ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v4i64' 273*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 274ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 275ac89b039SSimon Pilgrim; 276ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v4i64' 277ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 278ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 279ac89b039SSimon Pilgrim; 280ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v4i64' 281ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 282ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 283ac89b039SSimon Pilgrim; 284ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v4i64' 285ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 286ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 287ac89b039SSimon Pilgrim; 288ac89b039SSimon Pilgrim %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 289ac89b039SSimon Pilgrim ret <4 x i64> %bitreverse 290ac89b039SSimon Pilgrim} 291ac89b039SSimon Pilgrim 292ac89b039SSimon Pilgrimdefine <8 x i64> @var_bitreverse_v8i64(<8 x i64> %a) { 293ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v8i64' 294c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 295ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 296ac89b039SSimon Pilgrim; 297ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v8i64' 298c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 44 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 299ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 300ac89b039SSimon Pilgrim; 301ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v8i64' 302c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 303ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 304ac89b039SSimon Pilgrim; 305ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v8i64' 306c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 307ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 308ac89b039SSimon Pilgrim; 309c1af46ccSSimon Pilgrim; AVX512F-LABEL: 'var_bitreverse_v8i64' 310c1af46ccSSimon Pilgrim; AVX512F-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 311c1af46ccSSimon Pilgrim; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 312c1af46ccSSimon Pilgrim; 313c1af46ccSSimon Pilgrim; AVX512BW-LABEL: 'var_bitreverse_v8i64' 314c1af46ccSSimon Pilgrim; AVX512BW-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 315c1af46ccSSimon Pilgrim; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 316ac89b039SSimon Pilgrim; 317ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v8i64' 318c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 319ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 320ac89b039SSimon Pilgrim; 321ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v8i64' 322ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 323ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 324ac89b039SSimon Pilgrim; 325ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v8i64' 326*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 327ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 328ac89b039SSimon Pilgrim; 329ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v8i64' 330ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 331ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 332ac89b039SSimon Pilgrim; 333ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v8i64' 334*e4904351SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 335ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 336ac89b039SSimon Pilgrim; 337ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i64' 338ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 339ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 340ac89b039SSimon Pilgrim; 341ac89b039SSimon Pilgrim %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 342ac89b039SSimon Pilgrim ret <8 x i64> %bitreverse 343ac89b039SSimon Pilgrim} 344ac89b039SSimon Pilgrim 345ac89b039SSimon Pilgrimdefine <4 x i32> @var_bitreverse_v4i32(<4 x i32> %a) { 346ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v4i32' 347c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 30 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 348ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 349ac89b039SSimon Pilgrim; 350ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v4i32' 351c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 352ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 353ac89b039SSimon Pilgrim; 354ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v4i32' 355c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 356ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 357ac89b039SSimon Pilgrim; 358ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v4i32' 359c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 360ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 361ac89b039SSimon Pilgrim; 362ac89b039SSimon Pilgrim; AVX512-LABEL: 'var_bitreverse_v4i32' 363c1af46ccSSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 364ac89b039SSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 365ac89b039SSimon Pilgrim; 366ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v4i32' 367c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 368ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 369ac89b039SSimon Pilgrim; 370ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v4i32' 371ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 372ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 373ac89b039SSimon Pilgrim; 374ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v4i32' 375ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 376ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 377ac89b039SSimon Pilgrim; 378ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v4i32' 379ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 380ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 381ac89b039SSimon Pilgrim; 382ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v4i32' 383ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 384ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 385ac89b039SSimon Pilgrim; 386ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v4i32' 387ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 388ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 389ac89b039SSimon Pilgrim; 390ac89b039SSimon Pilgrim %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 391ac89b039SSimon Pilgrim ret <4 x i32> %bitreverse 392ac89b039SSimon Pilgrim} 393ac89b039SSimon Pilgrim 394ac89b039SSimon Pilgrimdefine <8 x i32> @var_bitreverse_v8i32(<8 x i32> %a) { 395ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v8i32' 396c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 60 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 397ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 398ac89b039SSimon Pilgrim; 399ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v8i32' 400c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 401ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 402ac89b039SSimon Pilgrim; 403ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v8i32' 404c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 405ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 406ac89b039SSimon Pilgrim; 407ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v8i32' 408c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 409ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 410ac89b039SSimon Pilgrim; 411ac89b039SSimon Pilgrim; AVX512-LABEL: 'var_bitreverse_v8i32' 412c1af46ccSSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 413ac89b039SSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 414ac89b039SSimon Pilgrim; 415ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v8i32' 416c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 417ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 418ac89b039SSimon Pilgrim; 419ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v8i32' 420ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 421ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 422ac89b039SSimon Pilgrim; 423ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v8i32' 424*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 425ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 426ac89b039SSimon Pilgrim; 427ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v8i32' 428ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 429ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 430ac89b039SSimon Pilgrim; 431ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v8i32' 432ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 433ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 434ac89b039SSimon Pilgrim; 435ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i32' 436ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 437ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 438ac89b039SSimon Pilgrim; 439ac89b039SSimon Pilgrim %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 440ac89b039SSimon Pilgrim ret <8 x i32> %bitreverse 441ac89b039SSimon Pilgrim} 442ac89b039SSimon Pilgrim 443ac89b039SSimon Pilgrimdefine <16 x i32> @var_bitreverse_v16i32(<16 x i32> %a) { 444ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v16i32' 445c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 120 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 446ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 447ac89b039SSimon Pilgrim; 448ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v16i32' 449c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 44 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 450ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 451ac89b039SSimon Pilgrim; 452ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v16i32' 453c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 454ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 455ac89b039SSimon Pilgrim; 456ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v16i32' 457c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 458ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 459ac89b039SSimon Pilgrim; 460c1af46ccSSimon Pilgrim; AVX512F-LABEL: 'var_bitreverse_v16i32' 461c1af46ccSSimon Pilgrim; AVX512F-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 462c1af46ccSSimon Pilgrim; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 463c1af46ccSSimon Pilgrim; 464c1af46ccSSimon Pilgrim; AVX512BW-LABEL: 'var_bitreverse_v16i32' 465c1af46ccSSimon Pilgrim; AVX512BW-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 466c1af46ccSSimon Pilgrim; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 467ac89b039SSimon Pilgrim; 468ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v16i32' 469c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 470ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 471ac89b039SSimon Pilgrim; 472ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v16i32' 473ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 474ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 475ac89b039SSimon Pilgrim; 476ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v16i32' 477*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 478ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 479ac89b039SSimon Pilgrim; 480ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v16i32' 481ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 482ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 483ac89b039SSimon Pilgrim; 484ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v16i32' 485*e4904351SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 486ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 487ac89b039SSimon Pilgrim; 488ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i32' 489ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 490ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 491ac89b039SSimon Pilgrim; 492ac89b039SSimon Pilgrim %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 493ac89b039SSimon Pilgrim ret <16 x i32> %bitreverse 494ac89b039SSimon Pilgrim} 495ac89b039SSimon Pilgrim 496ac89b039SSimon Pilgrimdefine <8 x i16> @var_bitreverse_v8i16(<8 x i16> %a) { 497c1af46ccSSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v8i16' 498c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 499c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 500ac89b039SSimon Pilgrim; 501c1af46ccSSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v8i16' 502c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 503c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 504c1af46ccSSimon Pilgrim; 505c1af46ccSSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v8i16' 506c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 507c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 508c1af46ccSSimon Pilgrim; 509c1af46ccSSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v8i16' 510c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 511c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 512c1af46ccSSimon Pilgrim; 513c1af46ccSSimon Pilgrim; AVX512-LABEL: 'var_bitreverse_v8i16' 514c1af46ccSSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 515c1af46ccSSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 516ac89b039SSimon Pilgrim; 517ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v8i16' 518c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 519ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 520ac89b039SSimon Pilgrim; 521ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v8i16' 522ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 523ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 524ac89b039SSimon Pilgrim; 525ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v8i16' 526ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 527ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 528ac89b039SSimon Pilgrim; 529ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v8i16' 530ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 531ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 532ac89b039SSimon Pilgrim; 533ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v8i16' 534ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 535ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 536ac89b039SSimon Pilgrim; 537ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i16' 538ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 539ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 540ac89b039SSimon Pilgrim; 541ac89b039SSimon Pilgrim %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 542ac89b039SSimon Pilgrim ret <8 x i16> %bitreverse 543ac89b039SSimon Pilgrim} 544ac89b039SSimon Pilgrim 545ac89b039SSimon Pilgrimdefine <16 x i16> @var_bitreverse_v16i16(<16 x i16> %a) { 546ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v16i16' 547c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 548ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 549ac89b039SSimon Pilgrim; 550ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v16i16' 551c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 552ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 553ac89b039SSimon Pilgrim; 554ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v16i16' 555c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 556ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 557ac89b039SSimon Pilgrim; 558ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v16i16' 559c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 560ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 561ac89b039SSimon Pilgrim; 562ac89b039SSimon Pilgrim; AVX512-LABEL: 'var_bitreverse_v16i16' 563c1af46ccSSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 564ac89b039SSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 565ac89b039SSimon Pilgrim; 566ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v16i16' 567c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 568ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 569ac89b039SSimon Pilgrim; 570ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v16i16' 571ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 572ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 573ac89b039SSimon Pilgrim; 574ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v16i16' 575*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 576ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 577ac89b039SSimon Pilgrim; 578ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v16i16' 579ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 580ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 581ac89b039SSimon Pilgrim; 582ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v16i16' 583ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 584ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 585ac89b039SSimon Pilgrim; 586ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i16' 587ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 588ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 589ac89b039SSimon Pilgrim; 590ac89b039SSimon Pilgrim %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 591ac89b039SSimon Pilgrim ret <16 x i16> %bitreverse 592ac89b039SSimon Pilgrim} 593ac89b039SSimon Pilgrim 594ac89b039SSimon Pilgrimdefine <32 x i16> @var_bitreverse_v32i16(<32 x i16> %a) { 595ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v32i16' 596c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 100 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 597ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 598ac89b039SSimon Pilgrim; 599ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v32i16' 600c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 44 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 601ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 602ac89b039SSimon Pilgrim; 603ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v32i16' 604c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 605ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 606ac89b039SSimon Pilgrim; 607ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v32i16' 608c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 609ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 610ac89b039SSimon Pilgrim; 611c1af46ccSSimon Pilgrim; AVX512F-LABEL: 'var_bitreverse_v32i16' 612c1af46ccSSimon Pilgrim; AVX512F-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 613c1af46ccSSimon Pilgrim; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 614c1af46ccSSimon Pilgrim; 615c1af46ccSSimon Pilgrim; AVX512BW-LABEL: 'var_bitreverse_v32i16' 616c1af46ccSSimon Pilgrim; AVX512BW-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 617c1af46ccSSimon Pilgrim; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 618ac89b039SSimon Pilgrim; 619ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v32i16' 620c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 621ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 622ac89b039SSimon Pilgrim; 623ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v32i16' 624ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 625ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 626ac89b039SSimon Pilgrim; 627ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v32i16' 628*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 629ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 630ac89b039SSimon Pilgrim; 631ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v32i16' 632ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 633ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 634ac89b039SSimon Pilgrim; 635ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v32i16' 636*e4904351SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 637ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 638ac89b039SSimon Pilgrim; 639ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v32i16' 640ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 641ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 642ac89b039SSimon Pilgrim; 643ac89b039SSimon Pilgrim %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 644ac89b039SSimon Pilgrim ret <32 x i16> %bitreverse 645ac89b039SSimon Pilgrim} 646ac89b039SSimon Pilgrim 647ac89b039SSimon Pilgrimdefine <16 x i8> @var_bitreverse_v16i8(<16 x i8> %a) { 648ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v16i8' 649c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 650ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 651ac89b039SSimon Pilgrim; 652ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v16i8' 653c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 654ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 655ac89b039SSimon Pilgrim; 656ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v16i8' 657c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 658ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 659ac89b039SSimon Pilgrim; 660ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v16i8' 661c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 662ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 663ac89b039SSimon Pilgrim; 664ac89b039SSimon Pilgrim; AVX512-LABEL: 'var_bitreverse_v16i8' 665c1af46ccSSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 666ac89b039SSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 667ac89b039SSimon Pilgrim; 668ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v16i8' 669c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 670ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 671ac89b039SSimon Pilgrim; 672ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v16i8' 673ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 674ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 675ac89b039SSimon Pilgrim; 676ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v16i8' 677ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 678ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 679ac89b039SSimon Pilgrim; 680ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v16i8' 681ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 682ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 683ac89b039SSimon Pilgrim; 684ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v16i8' 685ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 686ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 687ac89b039SSimon Pilgrim; 688ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i8' 689ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 690ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 691ac89b039SSimon Pilgrim; 692ac89b039SSimon Pilgrim %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 693ac89b039SSimon Pilgrim ret <16 x i8> %bitreverse 694ac89b039SSimon Pilgrim} 695ac89b039SSimon Pilgrim 696ac89b039SSimon Pilgrimdefine <32 x i8> @var_bitreverse_v32i8(<32 x i8> %a) { 697ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v32i8' 698c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 42 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 699ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 700ac89b039SSimon Pilgrim; 701ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v32i8' 702c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 703ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 704ac89b039SSimon Pilgrim; 705ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v32i8' 706c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 707ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 708ac89b039SSimon Pilgrim; 709ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v32i8' 710c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 711ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 712ac89b039SSimon Pilgrim; 713ac89b039SSimon Pilgrim; AVX512-LABEL: 'var_bitreverse_v32i8' 714c1af46ccSSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 715ac89b039SSimon Pilgrim; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 716ac89b039SSimon Pilgrim; 717ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v32i8' 718c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 719ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 720ac89b039SSimon Pilgrim; 721ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v32i8' 722ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 723ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 724ac89b039SSimon Pilgrim; 725ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v32i8' 726*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 727ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 728ac89b039SSimon Pilgrim; 729ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v32i8' 730ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 731ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 732ac89b039SSimon Pilgrim; 733ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v32i8' 734ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 735ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 736ac89b039SSimon Pilgrim; 737ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v32i8' 738ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 739ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 740ac89b039SSimon Pilgrim; 741ac89b039SSimon Pilgrim %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 742ac89b039SSimon Pilgrim ret <32 x i8> %bitreverse 743ac89b039SSimon Pilgrim} 744ac89b039SSimon Pilgrim 745ac89b039SSimon Pilgrimdefine <64 x i8> @var_bitreverse_v64i8(<64 x i8> %a) { 746ac89b039SSimon Pilgrim; SSE2-LABEL: 'var_bitreverse_v64i8' 747c1af46ccSSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 84 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 748ac89b039SSimon Pilgrim; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 749ac89b039SSimon Pilgrim; 750ac89b039SSimon Pilgrim; SSE42-LABEL: 'var_bitreverse_v64i8' 751c1af46ccSSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 752ac89b039SSimon Pilgrim; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 753ac89b039SSimon Pilgrim; 754ac89b039SSimon Pilgrim; AVX1-LABEL: 'var_bitreverse_v64i8' 755c1af46ccSSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 34 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 756ac89b039SSimon Pilgrim; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 757ac89b039SSimon Pilgrim; 758ac89b039SSimon Pilgrim; AVX2-LABEL: 'var_bitreverse_v64i8' 759c1af46ccSSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 760ac89b039SSimon Pilgrim; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 761ac89b039SSimon Pilgrim; 762c1af46ccSSimon Pilgrim; AVX512F-LABEL: 'var_bitreverse_v64i8' 763c1af46ccSSimon Pilgrim; AVX512F-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 764c1af46ccSSimon Pilgrim; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 765c1af46ccSSimon Pilgrim; 766c1af46ccSSimon Pilgrim; AVX512BW-LABEL: 'var_bitreverse_v64i8' 767c1af46ccSSimon Pilgrim; AVX512BW-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 768c1af46ccSSimon Pilgrim; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 769ac89b039SSimon Pilgrim; 770ac89b039SSimon Pilgrim; XOP-LABEL: 'var_bitreverse_v64i8' 771c1af46ccSSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 772ac89b039SSimon Pilgrim; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 773ac89b039SSimon Pilgrim; 774ac89b039SSimon Pilgrim; GFNISSE-LABEL: 'var_bitreverse_v64i8' 775ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 776ac89b039SSimon Pilgrim; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 777ac89b039SSimon Pilgrim; 778ac89b039SSimon Pilgrim; GFNIAVX-LABEL: 'var_bitreverse_v64i8' 779*e4904351SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 780ac89b039SSimon Pilgrim; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 781ac89b039SSimon Pilgrim; 782ac89b039SSimon Pilgrim; GFNIAVX2-LABEL: 'var_bitreverse_v64i8' 783ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 784ac89b039SSimon Pilgrim; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 785ac89b039SSimon Pilgrim; 786ac89b039SSimon Pilgrim; GFNIAVX512F-LABEL: 'var_bitreverse_v64i8' 787*e4904351SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 788ac89b039SSimon Pilgrim; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 789ac89b039SSimon Pilgrim; 790ac89b039SSimon Pilgrim; GFNIAVX512BW-LABEL: 'var_bitreverse_v64i8' 791ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 792ac89b039SSimon Pilgrim; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 793ac89b039SSimon Pilgrim; 794ac89b039SSimon Pilgrim %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 795ac89b039SSimon Pilgrim ret <64 x i8> %bitreverse 796ac89b039SSimon Pilgrim} 797