Index: llvm/test/CodeGen/RISCV/rvv/fixed-vectors-constant-pool-alignment.ll =================================================================== --- /dev/null +++ llvm/test/CodeGen/RISCV/rvv/fixed-vectors-constant-pool-alignment.ll @@ -0,0 +1,46 @@ +; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s | FileCheck %s + +define void @constantpool_v16xi8(ptr %x) { +; CHECK: .section .rodata.cst16,"aM",@progbits,16 +; CHECK: .p2align 4, 0x0 +; CHECK: .byte +; CHECK: .globl constantpool_v16xi8 +; CHECK: .p2align 2 + store <16 x i8> , ptr %x + ret void +} + +define void @constantpool_v4xi32(ptr %x) { +; CHECK: .section .rodata.cst16,"aM",@progbits,16 +; CHECK: .p2align 4, 0x0 +; CHECK: .word +; CHECK: .globl constantpool_v4xi32 +; CHECK: .p2align 2 + store <4 x i32> , ptr %x + ret void +} + +; Note that to exercise the 64 bit alignment case, we need four elements +; as all of the two element small constant cases get optimized to some +; other sequence +define void @constantpool_v4xi64(ptr %x) { +; CHECK: .section .rodata.cst32,"aM",@progbits,32 +; CHECK: .p2align 5, 0x0 +; CHECK: .quad +; CHECK: .globl constantpool_v4xi64 +; CHECK: .p2align 2 + store <4 x i64> , ptr %x + ret void +} + +define void @constantpool_i64(ptr %x) { +; CHECK: .section .sdata,"aw",@progbits +; CHECK: .p2align 3 +; CHECK: .quad 58373358938439 +; CHECK: .globl constantpool_i64 +; CHECK: .p2align 2 + store i64 58373358938439, ptr %x + ret void +} + +