; RUN: llc %s -o - -mtriple=x86_64-linux-gnu | FileCheck %s
-; This can get rounded up to the preferred alignment (16).
-; PR6921
+; This cannot get rounded up to the preferred alignment (16) if they have an
+; explicit alignment specified.
@GlobalA = global { [384 x i8] } zeroinitializer, align 8
; CHECK: .bss
; CHECK: .globl GlobalA
-; CHECK: .align 16
+; CHECK: .align 8
; CHECK: GlobalA:
; CHECK: .zero 384
-; Common variables should also get rounded up to the preferred alignment (16).
+; Common variables should not get rounded up to the preferred alignment (16) if
+; they have an explicit alignment specified.
+; PR6921
@GlobalB = common global { [384 x i8] } zeroinitializer, align 8
-; CHECK: .comm GlobalB,384,16
\ No newline at end of file
+; CHECK: .comm GlobalB,384,8
+
+
+@GlobalC = common global { [384 x i8] } zeroinitializer, align 2
+
+; CHECK: .comm GlobalC,384,2
+
+
+
+; This cannot get rounded up to the preferred alignment (16) if they have an
+; explicit alignment specified *and* a section specified.
+@GlobalAS = global { [384 x i8] } zeroinitializer, align 8, section "foo"
+
+; CHECK: .globl GlobalAS
+; CHECK: .align 8
+; CHECK: GlobalAS:
+; CHECK: .zero 384
+
+; Common variables should not get rounded up to the preferred alignment (16) if
+; they have an explicit alignment specified and a section specified.
+; PR6921
+@GlobalBS = common global { [384 x i8] } zeroinitializer, align 8, section "foo"
+; CHECK: .comm GlobalBS,384,8
+
+@GlobalCS = common global { [384 x i8] } zeroinitializer, align 2, section "foo"
+; CHECK: .comm GlobalCS,384,2