|
| 1 | +;=========================== begin_copyright_notice ============================ |
| 2 | +; |
| 3 | +; Copyright (C) 2024 Intel Corporation |
| 4 | +; |
| 5 | +; SPDX-License-Identifier: MIT |
| 6 | +; |
| 7 | +;============================ end_copyright_notice ============================= |
| 8 | + |
| 9 | +; RUN: %opt %use_old_pass_manager% -GenXPatternMatch -march=genx64 -mcpu=Xe2 -mtriple=spir64-unknown-unknown -S < %s | FileCheck %s |
| 10 | + |
| 11 | +declare <64 x float> @llvm.vc.internal.lsc.load.quad.tgm.v64f32.v32i1.v2i8.v32i32(<32 x i1>, <2 x i8>, i8, i32, <32 x i32>, <32 x i32>, <32 x i32>, <32 x i32>, <64 x float>) |
| 12 | +declare void @llvm.vc.internal.lsc.store.quad.tgm.v32i1.v2i8.v32i32.v64f32(<32 x i1>, <2 x i8>, i8, i32, <32 x i32>, <32 x i32>, <32 x i32>, <32 x i32>, <64 x float>) |
| 13 | +declare void @llvm.vc.internal.lsc.prefetch.quad.tgm.v32i1.v2i8.v32i32(<32 x i1>, <2 x i8>, i8, i32, <32 x i32>, <32 x i32>, <32 x i32>, <32 x i32>) |
| 14 | + |
| 15 | +define void @test(i32 %bti, <32 x i32> %u, <32 x i32> %v) { |
| 16 | + ; CHECK: tail call void @llvm.vc.internal.lsc.prefetch.quad.tgm.v32i1.v2i8.v32i32(<32 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, <2 x i8> zeroinitializer, i8 3, i32 %bti, <32 x i32> %u, <32 x i32> %v, <32 x i32> undef, <32 x i32> undef) |
| 17 | + tail call void @llvm.vc.internal.lsc.prefetch.quad.tgm.v32i1.v2i8.v32i32(<32 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, <2 x i8> zeroinitializer, i8 3, i32 %bti, <32 x i32> %u, <32 x i32> %v, <32 x i32> zeroinitializer, <32 x i32> zeroinitializer) |
| 18 | + |
| 19 | + ; CHECK: %load = tail call <64 x float> @llvm.vc.internal.lsc.load.quad.tgm.v64f32.v32i1.v2i8.v32i32(<32 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, <2 x i8> zeroinitializer, i8 3, i32 %bti, <32 x i32> %u, <32 x i32> %v, <32 x i32> undef, <32 x i32> undef, <64 x float> undef) |
| 20 | + %load = tail call <64 x float> @llvm.vc.internal.lsc.load.quad.tgm.v64f32.v32i1.v2i8.v32i32(<32 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, <2 x i8> zeroinitializer, i8 3, i32 %bti, <32 x i32> %u, <32 x i32> %v, <32 x i32> zeroinitializer, <32 x i32> zeroinitializer, <64 x float> undef) |
| 21 | + |
| 22 | + ; CHECK: tail call void @llvm.vc.internal.lsc.store.quad.tgm.v32i1.v2i8.v32i32.v64f32(<32 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, <2 x i8> zeroinitializer, i8 3, i32 %bti, <32 x i32> %u, <32 x i32> %v, <32 x i32> undef, <32 x i32> undef, <64 x float> %load) |
| 23 | + tail call void @llvm.vc.internal.lsc.store.quad.tgm.v32i1.v2i8.v32i32.v64f32(<32 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, <2 x i8> zeroinitializer, i8 3, i32 %bti, <32 x i32> %u, <32 x i32> %v, <32 x i32> zeroinitializer, <32 x i32> zeroinitializer, <64 x float> %load) |
| 24 | + |
| 25 | + ret void |
| 26 | +} |
0 commit comments