brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 09c8f70 Raw
105 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 42// RUN: %clang_cc1 -triple x86_64-linux-gnu -target-cpu core2 %s -emit-llvm -o - | FileCheck -check-prefixes=X64 %s3// RUN: %clang_cc1 -triple i686-linux-gnu -target-cpu core2 %s -emit-llvm -o - | FileCheck -check-prefixes=X86 %s4 5 6// X64-LABEL: define dso_local double @test_double_post_inc(7// X64-SAME: ) #[[ATTR0:[0-9]+]] {8// X64-NEXT:  entry:9// X64-NEXT:    [[TMP0:%.*]] = atomicrmw fadd ptr @test_double_post_inc.n, double 1.000000e+00 seq_cst, align 810// X64-NEXT:    ret double [[TMP0]]11//12// X86-LABEL: define dso_local double @test_double_post_inc(13// X86-SAME: ) #[[ATTR0:[0-9]+]] {14// X86-NEXT:  entry:15// X86-NEXT:    [[TMP0:%.*]] = atomicrmw fadd ptr @test_double_post_inc.n, double 1.000000e+00 seq_cst, align 816// X86-NEXT:    ret double [[TMP0]]17//18double test_double_post_inc()19{20    static _Atomic double n;21    return n++;22}23 24// X64-LABEL: define dso_local double @test_double_post_dc(25// X64-SAME: ) #[[ATTR0]] {26// X64-NEXT:  entry:27// X64-NEXT:    [[TMP0:%.*]] = atomicrmw fsub ptr @test_double_post_dc.n, double 1.000000e+00 seq_cst, align 828// X64-NEXT:    ret double [[TMP0]]29//30// X86-LABEL: define dso_local double @test_double_post_dc(31// X86-SAME: ) #[[ATTR0]] {32// X86-NEXT:  entry:33// X86-NEXT:    [[TMP0:%.*]] = atomicrmw fsub ptr @test_double_post_dc.n, double 1.000000e+00 seq_cst, align 834// X86-NEXT:    ret double [[TMP0]]35//36double test_double_post_dc()37{38    static _Atomic double n;39    return n--;40}41 42// X64-LABEL: define dso_local double @test_double_pre_dc(43// X64-SAME: ) #[[ATTR0]] {44// X64-NEXT:  entry:45// X64-NEXT:    [[TMP0:%.*]] = atomicrmw fsub ptr @test_double_pre_dc.n, double 1.000000e+00 seq_cst, align 846// X64-NEXT:    [[TMP1:%.*]] = fsub double [[TMP0]], 1.000000e+0047// X64-NEXT:    ret double [[TMP1]]48//49// X86-LABEL: define dso_local double @test_double_pre_dc(50// X86-SAME: ) #[[ATTR0]] {51// X86-NEXT:  entry:52// X86-NEXT:    [[TMP0:%.*]] = atomicrmw fsub ptr @test_double_pre_dc.n, double 1.000000e+00 seq_cst, align 853// X86-NEXT:    [[TMP1:%.*]] = fsub double [[TMP0]], 1.000000e+0054// X86-NEXT:    ret double [[TMP1]]55//56double test_double_pre_dc()57{58    static _Atomic double n;59    return --n;60}61 62// X64-LABEL: define dso_local double @test_double_pre_inc(63// X64-SAME: ) #[[ATTR0]] {64// X64-NEXT:  entry:65// X64-NEXT:    [[TMP0:%.*]] = atomicrmw fadd ptr @test_double_pre_inc.n, double 1.000000e+00 seq_cst, align 866// X64-NEXT:    [[TMP1:%.*]] = fadd double [[TMP0]], 1.000000e+0067// X64-NEXT:    ret double [[TMP1]]68//69// X86-LABEL: define dso_local double @test_double_pre_inc(70// X86-SAME: ) #[[ATTR0]] {71// X86-NEXT:  entry:72// X86-NEXT:    [[TMP0:%.*]] = atomicrmw fadd ptr @test_double_pre_inc.n, double 1.000000e+00 seq_cst, align 873// X86-NEXT:    [[TMP1:%.*]] = fadd double [[TMP0]], 1.000000e+0074// X86-NEXT:    ret double [[TMP1]]75//76double test_double_pre_inc()77{78    static _Atomic double n;79    return ++n;80}81 82// X64-LABEL: define dso_local i32 @pr107054(83// X64-SAME: ) #[[ATTR0]] {84// X64-NEXT:  entry:85// X64-NEXT:    [[TMP0:%.*]] = atomicrmw fadd ptr @pr107054.n, double 1.000000e+00 seq_cst, align 886// X64-NEXT:    [[TMP1:%.*]] = fadd double [[TMP0]], 1.000000e+0087// X64-NEXT:    [[CMP:%.*]] = fcmp oeq double [[TMP1]], 1.000000e+0088// X64-NEXT:    [[CONV:%.*]] = zext i1 [[CMP]] to i3289// X64-NEXT:    ret i32 [[CONV]]90//91// X86-LABEL: define dso_local i32 @pr107054(92// X86-SAME: ) #[[ATTR0]] {93// X86-NEXT:  entry:94// X86-NEXT:    [[TMP0:%.*]] = atomicrmw fadd ptr @pr107054.n, double 1.000000e+00 seq_cst, align 895// X86-NEXT:    [[TMP1:%.*]] = fadd double [[TMP0]], 1.000000e+0096// X86-NEXT:    [[CMP:%.*]] = fcmp oeq double [[TMP1]], 1.000000e+0097// X86-NEXT:    [[CONV:%.*]] = zext i1 [[CMP]] to i3298// X86-NEXT:    ret i32 [[CONV]]99//100int pr107054()101{102    static _Atomic double n;103    return (++n) == 1;104}105