diff options
Diffstat (limited to 'test/CodeGen/AArch64/arm64-atomic.ll')
-rw-r--r-- | test/CodeGen/AArch64/arm64-atomic.ll | 102 |
1 files changed, 51 insertions, 51 deletions
diff --git a/test/CodeGen/AArch64/arm64-atomic.ll b/test/CodeGen/AArch64/arm64-atomic.ll index b56f91d..451e7e0 100644 --- a/test/CodeGen/AArch64/arm64-atomic.ll +++ b/test/CodeGen/AArch64/arm64-atomic.ll @@ -107,7 +107,7 @@ define void @seq_cst_fence() { } define i32 @atomic_load(i32* %p) { - %r = load atomic i32* %p seq_cst, align 4 + %r = load atomic i32, i32* %p seq_cst, align 4 ret i32 %r ; CHECK-LABEL: atomic_load: ; CHECK: ldar @@ -115,22 +115,22 @@ define i32 @atomic_load(i32* %p) { define i8 @atomic_load_relaxed_8(i8* %p, i32 %off32) { ; CHECK-LABEL: atomic_load_relaxed_8: - %ptr_unsigned = getelementptr i8* %p, i32 4095 - %val_unsigned = load atomic i8* %ptr_unsigned monotonic, align 1 + %ptr_unsigned = getelementptr i8, i8* %p, i32 4095 + %val_unsigned = load atomic i8, i8* %ptr_unsigned monotonic, align 1 ; CHECK: ldrb {{w[0-9]+}}, [x0, #4095] - %ptr_regoff = getelementptr i8* %p, i32 %off32 - %val_regoff = load atomic i8* %ptr_regoff unordered, align 1 + %ptr_regoff = getelementptr i8, i8* %p, i32 %off32 + %val_regoff = load atomic i8, i8* %ptr_regoff unordered, align 1 %tot1 = add i8 %val_unsigned, %val_regoff ; CHECK: ldrb {{w[0-9]+}}, [x0, w1, sxtw] - %ptr_unscaled = getelementptr i8* %p, i32 -256 - %val_unscaled = load atomic i8* %ptr_unscaled monotonic, align 1 + %ptr_unscaled = getelementptr i8, i8* %p, i32 -256 + %val_unscaled = load atomic i8, i8* %ptr_unscaled monotonic, align 1 %tot2 = add i8 %tot1, %val_unscaled ; CHECK: ldurb {{w[0-9]+}}, [x0, #-256] - %ptr_random = getelementptr i8* %p, i32 1191936 ; 0x123000 (i.e. ADD imm) - %val_random = load atomic i8* %ptr_random unordered, align 1 + %ptr_random = getelementptr i8, i8* %p, i32 1191936 ; 0x123000 (i.e. ADD imm) + %val_random = load atomic i8, i8* %ptr_random unordered, align 1 %tot3 = add i8 %tot2, %val_random ; CHECK: add x[[ADDR:[0-9]+]], x0, #291, lsl #12 ; CHECK: ldrb {{w[0-9]+}}, [x[[ADDR]]] @@ -140,22 +140,22 @@ define i8 @atomic_load_relaxed_8(i8* %p, i32 %off32) { define i16 @atomic_load_relaxed_16(i16* %p, i32 %off32) { ; CHECK-LABEL: atomic_load_relaxed_16: - %ptr_unsigned = getelementptr i16* %p, i32 4095 - %val_unsigned = load atomic i16* %ptr_unsigned monotonic, align 2 + %ptr_unsigned = getelementptr i16, i16* %p, i32 4095 + %val_unsigned = load atomic i16, i16* %ptr_unsigned monotonic, align 2 ; CHECK: ldrh {{w[0-9]+}}, [x0, #8190] - %ptr_regoff = getelementptr i16* %p, i32 %off32 - %val_regoff = load atomic i16* %ptr_regoff unordered, align 2 + %ptr_regoff = getelementptr i16, i16* %p, i32 %off32 + %val_regoff = load atomic i16, i16* %ptr_regoff unordered, align 2 %tot1 = add i16 %val_unsigned, %val_regoff ; CHECK: ldrh {{w[0-9]+}}, [x0, w1, sxtw #1] - %ptr_unscaled = getelementptr i16* %p, i32 -128 - %val_unscaled = load atomic i16* %ptr_unscaled monotonic, align 2 + %ptr_unscaled = getelementptr i16, i16* %p, i32 -128 + %val_unscaled = load atomic i16, i16* %ptr_unscaled monotonic, align 2 %tot2 = add i16 %tot1, %val_unscaled ; CHECK: ldurh {{w[0-9]+}}, [x0, #-256] - %ptr_random = getelementptr i16* %p, i32 595968 ; 0x123000/2 (i.e. ADD imm) - %val_random = load atomic i16* %ptr_random unordered, align 2 + %ptr_random = getelementptr i16, i16* %p, i32 595968 ; 0x123000/2 (i.e. ADD imm) + %val_random = load atomic i16, i16* %ptr_random unordered, align 2 %tot3 = add i16 %tot2, %val_random ; CHECK: add x[[ADDR:[0-9]+]], x0, #291, lsl #12 ; CHECK: ldrh {{w[0-9]+}}, [x[[ADDR]]] @@ -165,22 +165,22 @@ define i16 @atomic_load_relaxed_16(i16* %p, i32 %off32) { define i32 @atomic_load_relaxed_32(i32* %p, i32 %off32) { ; CHECK-LABEL: atomic_load_relaxed_32: - %ptr_unsigned = getelementptr i32* %p, i32 4095 - %val_unsigned = load atomic i32* %ptr_unsigned monotonic, align 4 + %ptr_unsigned = getelementptr i32, i32* %p, i32 4095 + %val_unsigned = load atomic i32, i32* %ptr_unsigned monotonic, align 4 ; CHECK: ldr {{w[0-9]+}}, [x0, #16380] - %ptr_regoff = getelementptr i32* %p, i32 %off32 - %val_regoff = load atomic i32* %ptr_regoff unordered, align 4 + %ptr_regoff = getelementptr i32, i32* %p, i32 %off32 + %val_regoff = load atomic i32, i32* %ptr_regoff unordered, align 4 %tot1 = add i32 %val_unsigned, %val_regoff ; CHECK: ldr {{w[0-9]+}}, [x0, w1, sxtw #2] - %ptr_unscaled = getelementptr i32* %p, i32 -64 - %val_unscaled = load atomic i32* %ptr_unscaled monotonic, align 4 + %ptr_unscaled = getelementptr i32, i32* %p, i32 -64 + %val_unscaled = load atomic i32, i32* %ptr_unscaled monotonic, align 4 %tot2 = add i32 %tot1, %val_unscaled ; CHECK: ldur {{w[0-9]+}}, [x0, #-256] - %ptr_random = getelementptr i32* %p, i32 297984 ; 0x123000/4 (i.e. ADD imm) - %val_random = load atomic i32* %ptr_random unordered, align 4 + %ptr_random = getelementptr i32, i32* %p, i32 297984 ; 0x123000/4 (i.e. ADD imm) + %val_random = load atomic i32, i32* %ptr_random unordered, align 4 %tot3 = add i32 %tot2, %val_random ; CHECK: add x[[ADDR:[0-9]+]], x0, #291, lsl #12 ; CHECK: ldr {{w[0-9]+}}, [x[[ADDR]]] @@ -190,22 +190,22 @@ define i32 @atomic_load_relaxed_32(i32* %p, i32 %off32) { define i64 @atomic_load_relaxed_64(i64* %p, i32 %off32) { ; CHECK-LABEL: atomic_load_relaxed_64: - %ptr_unsigned = getelementptr i64* %p, i32 4095 - %val_unsigned = load atomic i64* %ptr_unsigned monotonic, align 8 + %ptr_unsigned = getelementptr i64, i64* %p, i32 4095 + %val_unsigned = load atomic i64, i64* %ptr_unsigned monotonic, align 8 ; CHECK: ldr {{x[0-9]+}}, [x0, #32760] - %ptr_regoff = getelementptr i64* %p, i32 %off32 - %val_regoff = load atomic i64* %ptr_regoff unordered, align 8 + %ptr_regoff = getelementptr i64, i64* %p, i32 %off32 + %val_regoff = load atomic i64, i64* %ptr_regoff unordered, align 8 %tot1 = add i64 %val_unsigned, %val_regoff ; CHECK: ldr {{x[0-9]+}}, [x0, w1, sxtw #3] - %ptr_unscaled = getelementptr i64* %p, i32 -32 - %val_unscaled = load atomic i64* %ptr_unscaled monotonic, align 8 + %ptr_unscaled = getelementptr i64, i64* %p, i32 -32 + %val_unscaled = load atomic i64, i64* %ptr_unscaled monotonic, align 8 %tot2 = add i64 %tot1, %val_unscaled ; CHECK: ldur {{x[0-9]+}}, [x0, #-256] - %ptr_random = getelementptr i64* %p, i32 148992 ; 0x123000/8 (i.e. ADD imm) - %val_random = load atomic i64* %ptr_random unordered, align 8 + %ptr_random = getelementptr i64, i64* %p, i32 148992 ; 0x123000/8 (i.e. ADD imm) + %val_random = load atomic i64, i64* %ptr_random unordered, align 8 %tot3 = add i64 %tot2, %val_random ; CHECK: add x[[ADDR:[0-9]+]], x0, #291, lsl #12 ; CHECK: ldr {{x[0-9]+}}, [x[[ADDR]]] @@ -223,19 +223,19 @@ define void @atomc_store(i32* %p) { define void @atomic_store_relaxed_8(i8* %p, i32 %off32, i8 %val) { ; CHECK-LABEL: atomic_store_relaxed_8: - %ptr_unsigned = getelementptr i8* %p, i32 4095 + %ptr_unsigned = getelementptr i8, i8* %p, i32 4095 store atomic i8 %val, i8* %ptr_unsigned monotonic, align 1 ; CHECK: strb {{w[0-9]+}}, [x0, #4095] - %ptr_regoff = getelementptr i8* %p, i32 %off32 + %ptr_regoff = getelementptr i8, i8* %p, i32 %off32 store atomic i8 %val, i8* %ptr_regoff unordered, align 1 ; CHECK: strb {{w[0-9]+}}, [x0, w1, sxtw] - %ptr_unscaled = getelementptr i8* %p, i32 -256 + %ptr_unscaled = getelementptr i8, i8* %p, i32 -256 store atomic i8 %val, i8* %ptr_unscaled monotonic, align 1 ; CHECK: sturb {{w[0-9]+}}, [x0, #-256] - %ptr_random = getelementptr i8* %p, i32 1191936 ; 0x123000 (i.e. ADD imm) + %ptr_random = getelementptr i8, i8* %p, i32 1191936 ; 0x123000 (i.e. ADD imm) store atomic i8 %val, i8* %ptr_random unordered, align 1 ; CHECK: add x[[ADDR:[0-9]+]], x0, #291, lsl #12 ; CHECK: strb {{w[0-9]+}}, [x[[ADDR]]] @@ -245,19 +245,19 @@ define void @atomic_store_relaxed_8(i8* %p, i32 %off32, i8 %val) { define void @atomic_store_relaxed_16(i16* %p, i32 %off32, i16 %val) { ; CHECK-LABEL: atomic_store_relaxed_16: - %ptr_unsigned = getelementptr i16* %p, i32 4095 + %ptr_unsigned = getelementptr i16, i16* %p, i32 4095 store atomic i16 %val, i16* %ptr_unsigned monotonic, align 2 ; CHECK: strh {{w[0-9]+}}, [x0, #8190] - %ptr_regoff = getelementptr i16* %p, i32 %off32 + %ptr_regoff = getelementptr i16, i16* %p, i32 %off32 store atomic i16 %val, i16* %ptr_regoff unordered, align 2 ; CHECK: strh {{w[0-9]+}}, [x0, w1, sxtw #1] - %ptr_unscaled = getelementptr i16* %p, i32 -128 + %ptr_unscaled = getelementptr i16, i16* %p, i32 -128 store atomic i16 %val, i16* %ptr_unscaled monotonic, align 2 ; CHECK: sturh {{w[0-9]+}}, [x0, #-256] - %ptr_random = getelementptr i16* %p, i32 595968 ; 0x123000/2 (i.e. ADD imm) + %ptr_random = getelementptr i16, i16* %p, i32 595968 ; 0x123000/2 (i.e. ADD imm) store atomic i16 %val, i16* %ptr_random unordered, align 2 ; CHECK: add x[[ADDR:[0-9]+]], x0, #291, lsl #12 ; CHECK: strh {{w[0-9]+}}, [x[[ADDR]]] @@ -267,19 +267,19 @@ define void @atomic_store_relaxed_16(i16* %p, i32 %off32, i16 %val) { define void @atomic_store_relaxed_32(i32* %p, i32 %off32, i32 %val) { ; CHECK-LABEL: atomic_store_relaxed_32: - %ptr_unsigned = getelementptr i32* %p, i32 4095 + %ptr_unsigned = getelementptr i32, i32* %p, i32 4095 store atomic i32 %val, i32* %ptr_unsigned monotonic, align 4 ; CHECK: str {{w[0-9]+}}, [x0, #16380] - %ptr_regoff = getelementptr i32* %p, i32 %off32 + %ptr_regoff = getelementptr i32, i32* %p, i32 %off32 store atomic i32 %val, i32* %ptr_regoff unordered, align 4 ; CHECK: str {{w[0-9]+}}, [x0, w1, sxtw #2] - %ptr_unscaled = getelementptr i32* %p, i32 -64 + %ptr_unscaled = getelementptr i32, i32* %p, i32 -64 store atomic i32 %val, i32* %ptr_unscaled monotonic, align 4 ; CHECK: stur {{w[0-9]+}}, [x0, #-256] - %ptr_random = getelementptr i32* %p, i32 297984 ; 0x123000/4 (i.e. ADD imm) + %ptr_random = getelementptr i32, i32* %p, i32 297984 ; 0x123000/4 (i.e. ADD imm) store atomic i32 %val, i32* %ptr_random unordered, align 4 ; CHECK: add x[[ADDR:[0-9]+]], x0, #291, lsl #12 ; CHECK: str {{w[0-9]+}}, [x[[ADDR]]] @@ -289,19 +289,19 @@ define void @atomic_store_relaxed_32(i32* %p, i32 %off32, i32 %val) { define void @atomic_store_relaxed_64(i64* %p, i32 %off32, i64 %val) { ; CHECK-LABEL: atomic_store_relaxed_64: - %ptr_unsigned = getelementptr i64* %p, i32 4095 + %ptr_unsigned = getelementptr i64, i64* %p, i32 4095 store atomic i64 %val, i64* %ptr_unsigned monotonic, align 8 ; CHECK: str {{x[0-9]+}}, [x0, #32760] - %ptr_regoff = getelementptr i64* %p, i32 %off32 + %ptr_regoff = getelementptr i64, i64* %p, i32 %off32 store atomic i64 %val, i64* %ptr_regoff unordered, align 8 ; CHECK: str {{x[0-9]+}}, [x0, w1, sxtw #3] - %ptr_unscaled = getelementptr i64* %p, i32 -32 + %ptr_unscaled = getelementptr i64, i64* %p, i32 -32 store atomic i64 %val, i64* %ptr_unscaled monotonic, align 8 ; CHECK: stur {{x[0-9]+}}, [x0, #-256] - %ptr_random = getelementptr i64* %p, i32 148992 ; 0x123000/8 (i.e. ADD imm) + %ptr_random = getelementptr i64, i64* %p, i32 148992 ; 0x123000/8 (i.e. ADD imm) store atomic i64 %val, i64* %ptr_random unordered, align 8 ; CHECK: add x[[ADDR:[0-9]+]], x0, #291, lsl #12 ; CHECK: str {{x[0-9]+}}, [x[[ADDR]]] @@ -319,13 +319,13 @@ define void @atomic_store_relaxed_64(i64* %p, i32 %off32, i64 %val) { define i32 @next_id() nounwind optsize ssp align 2 { entry: - %0 = atomicrmw add i32* getelementptr inbounds (%"class.X::Atomic"* @counter, i64 0, i32 0, i32 0), i32 1 seq_cst + %0 = atomicrmw add i32* getelementptr inbounds (%"class.X::Atomic", %"class.X::Atomic"* @counter, i64 0, i32 0, i32 0), i32 1 seq_cst %add.i = add i32 %0, 1 %tobool = icmp eq i32 %add.i, 0 br i1 %tobool, label %if.else, label %return if.else: ; preds = %entry - %1 = atomicrmw add i32* getelementptr inbounds (%"class.X::Atomic"* @counter, i64 0, i32 0, i32 0), i32 1 seq_cst + %1 = atomicrmw add i32* getelementptr inbounds (%"class.X::Atomic", %"class.X::Atomic"* @counter, i64 0, i32 0, i32 0), i32 1 seq_cst %add.i2 = add i32 %1, 1 br label %return |