Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / vgpr_constant_to_sgpr.ll
blob7840559c78eb6b157256ed9ec2149a7e66837ecc
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -O0 -mcpu=gfx1030 < %s | FileCheck %s
4 target triple = "amdgcn-amd-amdhsa"
6 ; Unknown functions are conservatively passed all implicit parameters
7 declare void @unknown_call()
8 ; Use the same constant as a sgpr parameter (for the kernel id) and for a vector operation
9 define protected amdgpu_kernel void @kern(ptr %addr) !llvm.amdgcn.lds.kernel.id !0 {
10 ; CHECK-LABEL: kern:
11 ; CHECK:       ; %bb.0:
12 ; CHECK-NEXT:    s_mov_b32 s32, 0
13 ; CHECK-NEXT:    s_add_u32 s10, s10, s15
14 ; CHECK-NEXT:    s_addc_u32 s11, s11, 0
15 ; CHECK-NEXT:    s_setreg_b32 hwreg(HW_REG_FLAT_SCR_LO), s10
16 ; CHECK-NEXT:    s_setreg_b32 hwreg(HW_REG_FLAT_SCR_HI), s11
17 ; CHECK-NEXT:    s_add_u32 s0, s0, s15
18 ; CHECK-NEXT:    s_addc_u32 s1, s1, 0
19 ; CHECK-NEXT:    s_mov_b64 s[10:11], s[8:9]
20 ; CHECK-NEXT:    s_load_dwordx2 s[8:9], s[6:7], 0x0
21 ; CHECK-NEXT:    v_mov_b32_e32 v5, 42
22 ; CHECK-NEXT:    s_waitcnt lgkmcnt(0)
23 ; CHECK-NEXT:    v_mov_b32_e32 v3, s8
24 ; CHECK-NEXT:    v_mov_b32_e32 v4, s9
25 ; CHECK-NEXT:    flat_store_dword v[3:4], v5
26 ; CHECK-NEXT:    s_mov_b64 s[16:17], 8
27 ; CHECK-NEXT:    s_mov_b32 s8, s6
28 ; CHECK-NEXT:    s_mov_b32 s6, s7
29 ; CHECK-NEXT:    s_mov_b32 s9, s16
30 ; CHECK-NEXT:    s_mov_b32 s7, s17
31 ; CHECK-NEXT:    s_add_u32 s8, s8, s9
32 ; CHECK-NEXT:    s_addc_u32 s6, s6, s7
33 ; CHECK-NEXT:    ; kill: def $sgpr8 killed $sgpr8 def $sgpr8_sgpr9
34 ; CHECK-NEXT:    s_mov_b32 s9, s6
35 ; CHECK-NEXT:    s_getpc_b64 s[6:7]
36 ; CHECK-NEXT:    s_add_u32 s6, s6, unknown_call@gotpcrel32@lo+4
37 ; CHECK-NEXT:    s_addc_u32 s7, s7, unknown_call@gotpcrel32@hi+12
38 ; CHECK-NEXT:    s_load_dwordx2 s[16:17], s[6:7], 0x0
39 ; CHECK-NEXT:    s_mov_b64 s[22:23], s[2:3]
40 ; CHECK-NEXT:    s_mov_b64 s[20:21], s[0:1]
41 ; CHECK-NEXT:    s_mov_b32 s6, 20
42 ; CHECK-NEXT:    v_lshlrev_b32_e64 v2, s6, v2
43 ; CHECK-NEXT:    s_mov_b32 s6, 10
44 ; CHECK-NEXT:    v_lshlrev_b32_e64 v1, s6, v1
45 ; CHECK-NEXT:    v_or3_b32 v31, v0, v1, v2
46 ; CHECK-NEXT:    ; implicit-def: $sgpr6_sgpr7
47 ; CHECK-NEXT:    s_mov_b32 s15, 42
48 ; CHECK-NEXT:    s_mov_b64 s[0:1], s[20:21]
49 ; CHECK-NEXT:    s_mov_b64 s[2:3], s[22:23]
50 ; CHECK-NEXT:    s_waitcnt lgkmcnt(0)
51 ; CHECK-NEXT:    s_swappc_b64 s[30:31], s[16:17]
52 ; CHECK-NEXT:    s_endpgm
53   store i32 42, ptr %addr
54   call fastcc void @unknown_call()
55   ret void
58 !llvm.module.flags = !{!1}
59 !0 = !{i32 42}
60 !1 = !{i32 1, !"amdgpu_code_object_version", i32 500}