| /llvm-project-15.0.7/llvm/test/CodeGen/X86/ |
| H A D | combine-avx-intrinsics.ll | 9 %1 = call <4 x double> @llvm.x86.avx.blend.pd.256(<4 x double> %a0, <4 x double> %a0, i32 7) 17 %1 = call <8 x float> @llvm.x86.avx.blend.ps.256(<8 x float> %a0, <8 x float> %a0, i32 7) 25 %1 = call <4 x double> @llvm.x86.avx.blend.pd.256(<4 x double> %a0, <4 x double> %a1, i32 0) 33 %1 = call <8 x float> @llvm.x86.avx.blend.ps.256(<8 x float> %a0, <8 x float> %a1, i32 0) 42 %1 = call <4 x double> @llvm.x86.avx.blend.pd.256(<4 x double> %a0, <4 x double> %a1, i32 -1) 51 %1 = call <8 x float> @llvm.x86.avx.blend.ps.256(<8 x float> %a0, <8 x float> %a1, i32 -1) 55 declare <4 x double> @llvm.x86.avx.blend.pd.256(<4 x double>, <4 x double>, i32) 56 declare <8 x float> @llvm.x86.avx.blend.ps.256(<8 x float>, <8 x float>, i32)
|
| H A D | commuted-blend-mask.ll | 4 ; When commuting the operands of a SSE blend, make sure that the resulting blend
|
| H A D | avx-win64.ll | 19 ; CHECK: blend 36 …%blend.i52 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> %x, <8 x float> %binop33, <8… 40 %0 = phi <8 x float> [ %x, %allocas ], [ %blend.i52, %safe_if_run_false ]
|
| H A D | commute-blend-avx2.ll | 65 %2 = call <8 x float> @llvm.x86.avx.blend.ps.256(<8 x float> %1, <8 x float> %a, i8 7) 68 declare <8 x float> @llvm.x86.avx.blend.ps.256(<8 x float>, <8 x float>, i8) nounwind readnone 87 %2 = call <4 x double> @llvm.x86.avx.blend.pd.256(<4 x double> %1, <4 x double> %a, i8 7) 90 declare <4 x double> @llvm.x86.avx.blend.pd.256(<4 x double>, <4 x double>, i8) nounwind readnone
|
| H A D | vec_uint_to_fp.ll | 54 ; Currently we commute the arguments of the first blend, but this could be 55 ; improved to match the lowering of the second blend. 132 ; The operands of the blend are inverted because we reuse xmm1
|
| H A D | vec_uint_to_fp-fastmath.ll | 55 ; Currently we commute the arguments of the first blend, but this could be 56 ; improved to match the lowering of the second blend. 150 ; The operands of the blend are inverted because we reuse xmm1
|
| H A D | avx-cast.ll | 5 ; Prefer a blend instruction to a vinsert128 instruction because blends
|
| H A D | vselect-avx.ll | 9 ; we would lower that into a blend where only the high bit is relevant. 36 ; When shrinking the condition used into the select to match a blend, this 74 ; For this test, we used to optimized the conditional mask for the blend, i.e.,
|
| H A D | lower-vec-shift.ll | 7 ; a blend. On pre-avx2 targets, instead of scalarizing logical and arithmetic 9 ; emit a simpler sequence of two shifts + blend when possible.
|
| H A D | 2011-10-19-widen_vselect.ll | 6 ; we are able to generate vector blend instructions.
|
| H A D | avx-intrinsics-x86-upgrade.ll | 7 ; We don't check any vinsertf128 variant with immediate 0 because that's just a blend. 84 ; of a vinsertf128 $0 which should be optimized into a blend, so just check that it's 235 …%res = call <4 x double> @llvm.x86.avx.blend.pd.256(<4 x double> %a0, <4 x double> %a1, i32 7) ; <… 238 declare <4 x double> @llvm.x86.avx.blend.pd.256(<4 x double>, <4 x double>, i32) nounwind readnone 247 …%res = call <8 x float> @llvm.x86.avx.blend.ps.256(<8 x float> %a0, <8 x float> %a1, i32 7) ; <<8 … 250 declare <8 x float> @llvm.x86.avx.blend.ps.256(<8 x float>, <8 x float>, i32) nounwind readnone
|
| H A D | combine-and.ll | 22 ; Verify that the DAGCombiner is able to fold a vector AND into a blend
|
| H A D | vector-blend.ll | 518 ; If we can figure out a blend has a constant mask, we should emit the 519 ; blend instruction with an immediate mask 641 ;; 4 tests for shufflevectors that optimize to blend + immediate
|
| H A D | combine-or.ll | 22 ; instruction which performs a blend operation. 298 ; bitcast to use the mask-or blend combine.
|
| /llvm-project-15.0.7/llvm/test/Transforms/InstCombine/ |
| H A D | select-select.ll | 56 %r = select <4 x i1> %cmp, <4 x i8> %blend, <4 x i8> %x 69 %r = select <5 x i1> %cmp, <5 x i9> %blend, <5 x i9> %y 80 %r = select <4 x i1> %cmp, <4 x float> %x, <4 x float> %blend 93 %r = select i1 %cmp, <4 x i8> %y, <4 x i8> %blend 109 call void @use(<4 x i8> %blend) 110 %r = select <4 x i1> %cmp, <4 x i8> %blend, <4 x i8> %x 123 %r = select <4 x i1> %cmp, <4 x i8> %blend, <4 x i8> %y 149 %r = select <4 x i1> %cmp, <4 x i8> %z, <4 x i8> %blend 161 %blend = shufflevector <4 x i8> %x, <4 x i8> %y, <2 x i32> <i32 0, i32 5> 162 %r = select <2 x i1> %cmp, <2 x i8> %blend, <2 x i8> %x2 [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/X86Vector/Transforms/ |
| H A D | AVXTranspose.cpp | 164 mm256BlendPsAsm(ib, t0, sh0, MaskHelper::blend<0, 0, 1, 1, 0, 0, 1, 1>()); in transpose8x8xf32() 166 mm256BlendPsAsm(ib, t2, sh0, MaskHelper::blend<1, 1, 0, 0, 1, 1, 0, 0>()); in transpose8x8xf32() 168 mm256BlendPsAsm(ib, t1, sh2, MaskHelper::blend<0, 0, 1, 1, 0, 0, 1, 1>()); in transpose8x8xf32() 170 mm256BlendPsAsm(ib, t3, sh2, MaskHelper::blend<1, 1, 0, 0, 1, 1, 0, 0>()); in transpose8x8xf32() 172 mm256BlendPsAsm(ib, t4, sh4, MaskHelper::blend<0, 0, 1, 1, 0, 0, 1, 1>()); in transpose8x8xf32() 174 mm256BlendPsAsm(ib, t6, sh4, MaskHelper::blend<1, 1, 0, 0, 1, 1, 0, 0>()); in transpose8x8xf32() 176 mm256BlendPsAsm(ib, t5, sh6, MaskHelper::blend<0, 0, 1, 1, 0, 0, 1, 1>()); in transpose8x8xf32() 178 mm256BlendPsAsm(ib, t7, sh6, MaskHelper::blend<1, 1, 0, 0, 1, 1, 0, 0>()); in transpose8x8xf32()
|
| /llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/ |
| H A D | uniform-blend.ll | 40 %blend = phi i16 [ undef, %loop.header ], [ %iv.trunc.2, %loop.next ] 41 %dst.ptr = getelementptr inbounds [32 x i16], [32 x i16]* @dst, i16 0, i16 %blend 84 %blend = phi i64 [ undef, %loop.header ], [ %iv, %loop.next ] 85 %dst.ptr = getelementptr inbounds [32 x i16], [32 x i16]* @dst, i16 0, i64 %blend 142 %blend.1 = phi i64 [ undef, %loop.next ], [ %iv, %loop.next.2 ] 146 %blend = phi i64 [ undef, %loop.header ], [ %blend.1, %loop.next.3 ] 147 %dst.ptr = getelementptr inbounds [32 x i16], [32 x i16]* @dst, i16 0, i64 %blend
|
| H A D | single-value-blend-phis.ll | 51 %blend = phi i16 [ %iv.trunc, %loop.header ] 52 %src.ptr = getelementptr inbounds [32 x i16], [32 x i16]* @src, i16 0, i16 %blend 122 %blend = phi i16 [ %iv.trunc, %loop.header ] 123 %src.ptr = getelementptr inbounds [32 x i16], [32 x i16]* @src, i16 0, i16 %blend 196 %blend = phi i16 [ %iv.trunc, %loop.header ], [ %iv.trunc.2, %loop.next ] 197 %src.ptr = getelementptr inbounds [32 x i16], [32 x i16]* @src, i16 0, i16 %blend 274 %blend = phi i16 [ %iv.trunc, %loop.header ] 275 %src.ptr = getelementptr inbounds [32 x i16], [32 x i16]* @src, i16 0, i16 %blend
|
| H A D | tail-folding-counting-down.ll | 65 %blend = phi i32 [ 13, %then ], [ 12, %else ] 66 %trunc = trunc i32 %blend to i8
|
| /llvm-project-15.0.7/llvm/docs/ |
| H A D | PointerAuth.md | 52 discriminator (an integer, an address, or a blend of the two). 199 #### '``llvm.ptrauth.blend``' 204 declare i64 @llvm.ptrauth.blend(i64 <address discriminator>, i64 <integer discriminator>) 209 The '``llvm.ptrauth.blend``' intrinsic blends a pointer address discriminator 220 The '``llvm.ptrauth.blend``' intrinsic combines a small integer discriminator 295 * [``llvm.ptrauth.blend``](#llvm-ptrauth-blend): The semantics of the blend
|
| /llvm-project-15.0.7/llvm/test/CodeGen/ARM/ |
| H A D | vselect_imax.ll | 17 %T1_10* %blend, %T0_10* %storeaddr) { 34 %T1_14* %blend, %T0_14* %storeaddr) { 51 %T1_15* %blend, %T0_15* %storeaddr) { 70 %T1_18* %blend, %T0_18* %storeaddr) { 134 %T1_19* %blend, %T0_19* %storeaddr) { 242 %T1_20* %blend, %T0_20* %storeaddr) {
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/X86Vector/ |
| H A D | Transforms.h | 29 static uint8_t blend() { in blend() function
|
| /llvm-project-15.0.7/llvm/test/CodeGen/AArch64/ |
| H A D | aarch64-vuzp.ll | 63 ; that the vector blend transform does not scramble the pattern.
|
| /llvm-project-15.0.7/llvm/test/Transforms/InstCombine/X86/ |
| H A D | blend_x86.ll | 208 ; This verifies that nothing is interfering with the blend transform. This also tests the 209 ; expected IR when 1 of the blend operands is a constant 0 vector. Potentially, this could
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/SPIRV/IR/ |
| H A D | SPIRVGLOps.td | 1188 let summary = "Builds the linear blend of x and y"; 1191 Result is the linear blend of x and y, i.e., x * (1 - a) + y * a.
|