; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %} ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 -use-constant-int-for-fixed-length-splat | FileCheck %s ; Make sure the globals constant initializers are not prone to host endianess ; issues. ; CHECK-DAG: .b8 Gbli08[2] = {171, 205}; @Gbli08 = global [2 x i8] [i8 171, i8 205] ; CHECK-DAG: .b8 Gbli16[4] = {205, 171, 1, 239}; @Gbli16 = global [2 x i16] [i16 43981, i16 61185] ; CHECK-DAG: .b8 Gbli32[8] = {1, 239, 205, 171, 137, 103, 69, 35}; @Gbli32 = global [2 x i32] [i32 2882400001, i32 591751049] ; CHECK-DAG: .b8 Gbli64[16] = {137, 103, 69, 35, 1, 239, 205, 171, 239, 205, 171, 137, 103, 69, 35, 1}; @Gbli64 = global [2 x i64] [i64 12379813738877118345, i64 81985529216486895] ; CHECK-DAG: .b8 Gbli128[32] = {16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; @Gbli128 = global [2 x i128] [i128 1339673755198158349044581307228491536, i128 21345817372864405881847059188222722561] ; CHECK-DAG: .b8 Gblf32[8] = {192, 225, 100, 75, 0, 96, 106, 69}; @Gblf32 = global [2 x float] [float 1.5e+7, float 3.75e+3] ; CHECK-DAG: .b8 Gblf64[16] = {116, 10, 181, 48, 134, 62, 230, 58, 106, 222, 138, 98, 204, 250, 200, 75}; @Gblf64 = global [2 x double] [double 5.75e-25, double 12.25e+56] ; Make sure we fill in alignment gaps correctly. ; CHECK-DAG: .b8 GblU[12] = {7, 6, 0, 0, 5, 4, 3, 2, 1}; @GblU = global {i16, i32, i8} {i16 1543, i32 33752069, i8 1} ; CHECK-DAG: .b8 Gblv4i16[8] = {205, 171, 205, 171, 205, 171, 205, 171}; @Gblv4i16 = global <4 x i16> splat(i16 43981) ; CHECK-DAG: .b8 Gblv4f32[16] = {0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63}; @Gblv4f32 = global <4 x float> splat(float 1.0) ; Large-integer globals whose bit width is not a multiple of 8 must emit ; their full ceil(bitWidth/8) bytes, including the top partial byte. ; CHECK-DAG: .b8 globalint_Gbli65[9] = {255, 255, 255, 255, 255, 255, 255, 255, 1}; @globalint_Gbli65 = global i65 u0x1FFFFFFFFFFFFFFFF ; CHECK-DAG: .b8 globalint_Gbli100[13] = {186, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15}; @globalint_Gbli100 = global i100 u0xF000000000000000000000ABA ; Non-power-of-2 vector (<3 x i32> store=12 alloc=16) in the middle of the ; struct must keep its tail padding. ; CHECK-DAG: .b8 nonpow2vec_field_pad[32] = {1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 255}; %struct.nonpow2vec_pad = type { <3 x i32>, i32 } @nonpow2vec_field_pad = global %struct.nonpow2vec_pad { <3 x i32> , i32 -2 } ; CHECK-DAG: .b8 nonpow2vec_arr_pad[32] = {1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6}; @nonpow2vec_arr_pad = global [2 x <3 x i32>] [<3 x i32> , <3 x i32> ]