Skip to content

Commit b56a38f

Browse files
Pierre-vhtru
authored andcommitted
[AMDGPU] Precommit tests for D156308
Also includes another testcase that's unrelated, it's just a sanity check. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D156309 (cherry picked from commit 6a767fb)
1 parent 2d69280 commit b56a38f

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

llvm/test/CodeGen/AMDGPU/promote-alloca-subvecs.ll

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
2-
; RUN: opt -S -mtriple=amdgcn-unknown-amdhsa -passes=amdgpu-promote-alloca < %s | FileCheck %s
2+
; RUN: opt -S -mtriple=amdgcn-unknown-amdhsa -passes=amdgpu-promote-alloca -amdgpu-promote-alloca-to-vector-limit=512 < %s | FileCheck %s
33

44
target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5"
55

@@ -332,3 +332,48 @@ entry:
332332
store <3 x i32> %val, ptr addrspace(5) %stack
333333
ret void
334334
}
335+
336+
define void @test_accessty_too_small(<2 x i16> %val) {
337+
; CHECK-LABEL: define void @test_accessty_too_small
338+
; CHECK-SAME: (<2 x i16> [[VAL:%.*]]) {
339+
; CHECK-NEXT: entry:
340+
; CHECK-NEXT: [[STACK:%.*]] = alloca [4 x i64], align 4, addrspace(5)
341+
; CHECK-NEXT: store <2 x i16> [[VAL]], ptr addrspace(5) [[STACK]], align 4
342+
; CHECK-NEXT: ret void
343+
;
344+
entry:
345+
%stack = alloca [4 x i64], align 4, addrspace(5)
346+
store <2 x i16> %val, ptr addrspace(5) %stack
347+
ret void
348+
}
349+
350+
define void @store_2xi32_into_double(double %foo) {
351+
; CHECK-LABEL: define void @store_2xi32_into_double
352+
; CHECK-SAME: (double [[FOO:%.*]]) {
353+
; CHECK-NEXT: [[DUMMYUSER0:%.*]] = freeze double 0x5F0000005E
354+
; CHECK-NEXT: [[DUMMYUSER1:%.*]] = freeze double undef
355+
; CHECK-NEXT: [[DUMMYUSER2:%.*]] = freeze double undef
356+
; CHECK-NEXT: [[DUMMYUSER3:%.*]] = freeze double undef
357+
; CHECK-NEXT: ret void
358+
;
359+
%alloca = alloca [9 x double], align 8, addrspace(5)
360+
361+
store <2 x i32> <i32 94, i32 95>, ptr addrspace(5) %alloca, align 8
362+
%load0 = load double, ptr addrspace(5) %alloca, align 8
363+
%dummyuser0 = freeze double %load0
364+
365+
%idx4 = getelementptr inbounds [9 x double], ptr addrspace(5) %alloca, i32 0, i32 4
366+
%idx5 = getelementptr inbounds [9 x double], ptr addrspace(5) %alloca, i32 0, i32 5
367+
store <4 x i32> <i32 102, i32 103, i32 104, i32 105>, ptr addrspace(5) %idx4, align 8
368+
%load1 = load double, ptr addrspace(5) %idx4, align 8
369+
%dummyuser1 = freeze double %load1
370+
%load2 = load double, ptr addrspace(5) %idx5, align 8
371+
%dummyuser2 = freeze double %load2
372+
373+
%idx8 = getelementptr inbounds [9 x double], ptr addrspace(5) %alloca, i32 0, i32 8
374+
store <2 x i32> <i32 110, i32 111>, ptr addrspace(5) %idx8, align 8
375+
%load3 = load double, ptr addrspace(5) %idx8, align 8
376+
%dummyuser3 = freeze double %load3
377+
378+
ret void
379+
}

0 commit comments

Comments
 (0)