1dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// RUN: %clang_cc1 -triple powerpc-linux-gnu -emit-llvm %s -o - | FileCheck %s -check-prefix=PPC32 2dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// RUN: %clang_cc1 -triple powerpc64-linux-gnu -emit-llvm %s -o - | FileCheck %s -check-prefix=PPC64 3dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// RUN: %clang_cc1 -triple mipsel-linux-gnu -emit-llvm %s -o - | FileCheck %s -check-prefix=MIPS32 4dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// RUN: %clang_cc1 -triple mips64el-linux-gnu -emit-llvm %s -o - | FileCheck %s -check-prefix=MIPS64 5dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka 6dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanakaunsigned char c1, c2; 7dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanakaunsigned short s1, s2; 8dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanakaunsigned int i1, i2; 9dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanakaunsigned long long ll1, ll2; 10dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka 11dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanakaenum memory_order { 12dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka memory_order_relaxed, 13dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka memory_order_consume, 14dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka memory_order_acquire, 15dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka memory_order_release, 16dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka memory_order_acq_rel, 17dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka memory_order_seq_cst 18dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka}; 19dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka 20dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanakavoid test1(void) { 21dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka (void)__atomic_load(&c1, &c2, memory_order_seq_cst); 22dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka (void)__atomic_load(&s1, &s2, memory_order_seq_cst); 23dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka (void)__atomic_load(&i1, &i2, memory_order_seq_cst); 24dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka (void)__atomic_load(&ll1, &ll2, memory_order_seq_cst); 25dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka 26dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// PPC32: define void @test1 27dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// PPC32: load atomic i8* @c1 seq_cst 28dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// PPC32: load atomic i16* @s1 seq_cst 29dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// PPC32: load atomic i32* @i1 seq_cst 30dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// PPC32: call void @__atomic_load(i32 8, i8* bitcast (i64* @ll1 to i8*) 31dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka 32dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// PPC64: define void @test1 33dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// PPC64: load atomic i8* @c1 seq_cst 34dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// PPC64: load atomic i16* @s1 seq_cst 35dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// PPC64: load atomic i32* @i1 seq_cst 36dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// PPC64: load atomic i64* @ll1 seq_cst 37dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka 38dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// MIPS32: define void @test1 39dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// MIPS32: load atomic i8* @c1 seq_cst 40dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// MIPS32: load atomic i16* @s1 seq_cst 41dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// MIPS32: load atomic i32* @i1 seq_cst 42dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// MIPS32: call void @__atomic_load(i32 8, i8* bitcast (i64* @ll1 to i8*) 43dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka 44dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// MIPS64: define void @test1 45dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// MIPS64: load atomic i8* @c1 seq_cst 46dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// MIPS64: load atomic i16* @s1 seq_cst 47dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// MIPS64: load atomic i32* @i1 seq_cst 48dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka// MIPS64: load atomic i64* @ll1 seq_cst 49dbee9491716f98d226b3b15cd96dacb01ea69c54Akira Hatanaka} 50