11;=========================== begin_copyright_notice ============================
22;
3- ; Copyright (C) 2022 Intel Corporation
3+ ; Copyright (C) 2024 Intel Corporation
44;
55; SPDX-License-Identifier: MIT
66;
1414; Debug-info related check
1515; CHECK-NOT: WARNING
1616; CHECK: CheckModuleDebugify: PASS
17- ; XFAIL: *
1817
1918define spir_func void @test (i32 addrspace (1 )* %dst , <8 x i32 > %r0 , <8 x i32 > %payloadHeader , i16 %localIdX , i16 %localIdY , i16 %localIdZ , i8* %privateBase , i32 %bufferOffset ) #0 {
20- ; CHECK-LABEL: @test(
2119; CHECK: entry:
22- ; CHECK: [[DST_ADDR:%.*]] = alloca i32 addrspace(1)*, align 8
23- ; CHECK: [[X:%.*]] = alloca i32, align 4
24- ; CHECK: [[Y:%.*]] = alloca i32, align 4
25- ; CHECK: [[Z:%.*]] = alloca i32, align 4
26- ; CHECK: store i32 addrspace(1)* [[DST:%.*]], i32 addrspace(1)** [[DST_ADDR]], align 8
2720; CHECK: [[TMP0:%.*]] = call i16 @llvm.genx.GenISA.simdLaneId.i16()
21+ ; CHECK: [[DST_ADDR:%.*]] = alloca i32 addrspace(1)*
22+ ; CHECK: [[X:%.*]] = alloca i32
23+ ; CHECK: [[Y:%.*]] = alloca i32
24+ ; CHECK: [[Z:%.*]] = alloca i32
25+ ; CHECK: store i32 addrspace(1)* [[DST:%.*]], i32 addrspace(1)** [[DST_ADDR]]
2826; CHECK: [[TMP1:%.*]] = call i32 addrspace(1)* @llvm.genx.GenISA.GetLocalIdBufferPtr.p1i32()
2927; CHECK: [[TMP2:%.*]] = ptrtoint i32 addrspace(1)* [[TMP1]] to i64
3028; CHECK: [[TMP3:%.*]] = mul i16 [[TMP0]], 6
@@ -33,38 +31,35 @@ define spir_func void @test(i32 addrspace(1)* %dst, <8 x i32> %r0, <8 x i32> %pa
3331; CHECK: [[TMP6:%.*]] = inttoptr i64 [[TMP5]] to i16 addrspace(1)*
3432; CHECK: [[TMP7:%.*]] = load i16, i16 addrspace(1)* [[TMP6]]
3533; CHECK: [[EXT1:%.*]] = zext i16 [[TMP7]] to i32
36- ; CHECK: store i32 [[EXT1]], i32* [[X]], align 4
37- ; CHECK: [[TMP8:%.*]] = call i16 @llvm.genx.GenISA.simdLaneId.i16()
38- ; CHECK: [[TMP9:%.*]] = call i32 addrspace(1)* @llvm.genx.GenISA.GetLocalIdBufferPtr.p1i32()
39- ; CHECK: [[TMP10:%.*]] = ptrtoint i32 addrspace(1)* [[TMP9]] to i64
40- ; CHECK: [[TMP11:%.*]] = mul i16 [[TMP8]], 6
41- ; CHECK: [[TMP12:%.*]] = add i16 [[TMP11]], 2
42- ; CHECK: [[TMP13:%.*]] = zext i16 [[TMP12]] to i64
43- ; CHECK: [[TMP14:%.*]] = add i64 [[TMP13]], [[TMP10]]
44- ; CHECK: [[TMP15:%.*]] = inttoptr i64 [[TMP14]] to i16 addrspace(1)*
45- ; CHECK: [[TMP16:%.*]] = load i16, i16 addrspace(1)* [[TMP15]]
46- ; CHECK: [[EXT2:%.*]] = zext i16 [[TMP16]] to i32
47- ; CHECK: store i32 [[EXT2]], i32* [[Y]], align 4
48- ; CHECK: [[TMP17:%.*]] = call i16 @llvm.genx.GenISA.simdLaneId.i16()
49- ; CHECK: [[TMP18:%.*]] = call i32 addrspace(1)* @llvm.genx.GenISA.GetLocalIdBufferPtr.p1i32()
50- ; CHECK: [[TMP19:%.*]] = ptrtoint i32 addrspace(1)* [[TMP18]] to i64
51- ; CHECK: [[TMP20:%.*]] = mul i16 [[TMP17]], 6
52- ; CHECK: [[TMP21:%.*]] = add i16 [[TMP20]], 4
53- ; CHECK: [[TMP22:%.*]] = zext i16 [[TMP21]] to i64
54- ; CHECK: [[TMP23:%.*]] = add i64 [[TMP22]], [[TMP19]]
55- ; CHECK: [[TMP24:%.*]] = inttoptr i64 [[TMP23]] to i16 addrspace(1)*
56- ; CHECK: [[TMP25:%.*]] = load i16, i16 addrspace(1)* [[TMP24]]
57- ; CHECK: [[EXT3:%.*]] = zext i16 [[TMP25]] to i32
58- ; CHECK: store i32 [[EXT3]], i32* [[Z]], align 4
59- ; CHECK: [[TMP26:%.*]] = load i32, i32* [[X]], align 4
60- ; CHECK: [[TMP27:%.*]] = load i32, i32* [[Y]], align 4
61- ; CHECK: [[ADD:%.*]] = add nsw i32 [[TMP26]], [[TMP27]]
62- ; CHECK: [[TMP28:%.*]] = load i32, i32* [[Z]], align 4
63- ; CHECK: [[ADD5:%.*]] = add nsw i32 [[ADD]], [[TMP28]]
64- ; CHECK: [[TMP29:%.*]] = load i32 addrspace(1)*, i32 addrspace(1)** [[DST_ADDR]], align 8
65- ; CHECK: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, i32 addrspace(1)* [[TMP29]], i64 0
66- ; CHECK: store i32 [[ADD5]], i32 addrspace(1)* [[ARRAYIDX]], align 4
67- ; CHECK: ret void
34+ ; CHECK: store i32 [[EXT1]], i32* [[X]]
35+ ; CHECK: [[TMP8:%.*]] = call i32 addrspace(1)* @llvm.genx.GenISA.GetLocalIdBufferPtr.p1i32()
36+ ; CHECK: [[TMP9:%.*]] = ptrtoint i32 addrspace(1)* [[TMP8]] to i64
37+ ; CHECK: [[TMP10:%.*]] = mul i16 [[TMP0]], 6
38+ ; CHECK: [[TMP11:%.*]] = add i16 [[TMP10]], 2
39+ ; CHECK: [[TMP12:%.*]] = zext i16 [[TMP11]] to i64
40+ ; CHECK: [[TMP13:%.*]] = add i64 [[TMP12]], [[TMP9]]
41+ ; CHECK: [[TMP14:%.*]] = inttoptr i64 [[TMP13]] to i16 addrspace(1)*
42+ ; CHECK: [[TMP15:%.*]] = load i16, i16 addrspace(1)* [[TMP14]]
43+ ; CHECK: [[EXT2:%.*]] = zext i16 [[TMP15]] to i32
44+ ; CHECK: store i32 [[EXT2]], i32* [[Y]]
45+ ; CHECK: [[TMP16:%.*]] = call i32 addrspace(1)* @llvm.genx.GenISA.GetLocalIdBufferPtr.p1i32()
46+ ; CHECK: [[TMP17:%.*]] = ptrtoint i32 addrspace(1)* [[TMP16]] to i64
47+ ; CHECK: [[TMP18:%.*]] = mul i16 [[TMP0]], 6
48+ ; CHECK: [[TMP19:%.*]] = add i16 [[TMP18]], 4
49+ ; CHECK: [[TMP20:%.*]] = zext i16 [[TMP19]] to i64
50+ ; CHECK: [[TMP21:%.*]] = add i64 [[TMP20]], [[TMP17]]
51+ ; CHECK: [[TMP22:%.*]] = inttoptr i64 [[TMP21]] to i16 addrspace(1)*
52+ ; CHECK: [[TMP23:%.*]] = load i16, i16 addrspace(1)* [[TMP22]]
53+ ; CHECK: [[EXT3:%.*]] = zext i16 [[TMP23]] to i32
54+ ; CHECK: store i32 [[EXT3]], i32* [[Z]]
55+ ; CHECK: [[TMP24:%.*]] = load i32, i32* [[X]]
56+ ; CHECK: [[TMP25:%.*]] = load i32, i32* [[Y]]
57+ ; CHECK: [[ADD:%.*]] = add nsw i32 [[TMP24]], [[TMP25]]
58+ ; CHECK: [[TMP26:%.*]] = load i32, i32* [[Z]]
59+ ; CHECK: [[ADD5:%.*]] = add nsw i32 [[ADD]], [[TMP26]]
60+ ; CHECK: [[TMP27:%.*]] = load i32 addrspace(1)*, i32 addrspace(1)** [[DST_ADDR]]
61+ ; CHECK: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, i32 addrspace(1)* [[TMP27]], i64 0
62+ ; CHECK: store i32 [[ADD5]], i32 addrspace(1)* [[ARRAYIDX]]
6863;
6964entry:
7065 %dst.addr = alloca i32 addrspace (1 )*, align 8
0 commit comments