diff options
| author | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2016-08-18 16:05:06 +0000 |
|---|---|---|
| committer | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2016-08-18 16:05:06 +0000 |
| commit | 71d033a17f325882c54db28920020854013e5834 (patch) | |
| tree | 54093d1bf09253ebb22d2fb336befd7927e3eca3 /llvm/test | |
| parent | d1279df752164680b212dfce5c4a0f5317d12cfd (diff) | |
| download | bcm5719-llvm-71d033a17f325882c54db28920020854013e5834.tar.gz bcm5719-llvm-71d033a17f325882c54db28920020854013e5834.zip | |
[GlobalISel] Add floating-point binary ops.
llvm-svn: 279080
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll index d2ecf3a104e..789ca976e7b 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll @@ -541,3 +541,58 @@ define void @int_comparison(i32 %a, i32 %b, i1* %addr) { store i1 %res, i1* %addr ret void } + +; CHECK-LABEL: name: test_fadd +; CHECK: [[ARG1:%[0-9]+]](32) = COPY %s0 +; CHECK-NEXT: [[ARG2:%[0-9]+]](32) = COPY %s1 +; CHECK-NEXT: [[RES:%[0-9]+]](32) = G_FADD s32 [[ARG1]], [[ARG2]] +; CHECK-NEXT: %s0 = COPY [[RES]] +; CHECK-NEXT: RET_ReallyLR implicit %s0 +define float @test_fadd(float %arg1, float %arg2) { + %res = fadd float %arg1, %arg2 + ret float %res +} + +; CHECK-LABEL: name: test_fsub +; CHECK: [[ARG1:%[0-9]+]](32) = COPY %s0 +; CHECK-NEXT: [[ARG2:%[0-9]+]](32) = COPY %s1 +; CHECK-NEXT: [[RES:%[0-9]+]](32) = G_FSUB s32 [[ARG1]], [[ARG2]] +; CHECK-NEXT: %s0 = COPY [[RES]] +; CHECK-NEXT: RET_ReallyLR implicit %s0 +define float @test_fsub(float %arg1, float %arg2) { + %res = fsub float %arg1, %arg2 + ret float %res +} + +; CHECK-LABEL: name: test_fmul +; CHECK: [[ARG1:%[0-9]+]](32) = COPY %s0 +; CHECK-NEXT: [[ARG2:%[0-9]+]](32) = COPY %s1 +; CHECK-NEXT: [[RES:%[0-9]+]](32) = G_FMUL s32 [[ARG1]], [[ARG2]] +; CHECK-NEXT: %s0 = COPY [[RES]] +; CHECK-NEXT: RET_ReallyLR implicit %s0 +define float @test_fmul(float %arg1, float %arg2) { + %res = fmul float %arg1, %arg2 + ret float %res +} + +; CHECK-LABEL: name: test_fdiv +; CHECK: [[ARG1:%[0-9]+]](32) = COPY %s0 +; CHECK-NEXT: [[ARG2:%[0-9]+]](32) = COPY %s1 +; CHECK-NEXT: [[RES:%[0-9]+]](32) = G_FDIV s32 [[ARG1]], [[ARG2]] +; CHECK-NEXT: %s0 = COPY [[RES]] +; CHECK-NEXT: RET_ReallyLR implicit %s0 +define float @test_fdiv(float %arg1, float %arg2) { + %res = fdiv float %arg1, %arg2 + ret float %res +} + +; CHECK-LABEL: name: test_frem +; CHECK: [[ARG1:%[0-9]+]](32) = COPY %s0 +; CHECK-NEXT: [[ARG2:%[0-9]+]](32) = COPY %s1 +; CHECK-NEXT: [[RES:%[0-9]+]](32) = G_FREM s32 [[ARG1]], [[ARG2]] +; CHECK-NEXT: %s0 = COPY [[RES]] +; CHECK-NEXT: RET_ReallyLR implicit %s0 +define float @test_frem(float %arg1, float %arg2) { + %res = frem float %arg1, %arg2 + ret float %res +} |

