Skip to content

Commit 63e7194

Browse files
Add OGCG checks + fix labels + re-add header include
1 parent 713df01 commit 63e7194

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "clang/Basic/Builtins.h"
1717
#include "clang/Basic/TargetBuiltins.h"
1818
#include "clang/CIR/MissingFeatures.h"
19+
#include "llvm/IR/IntrinsicsX86.h"
1920

2021
using namespace clang;
2122
using namespace clang::CIRGen;

clang/test/CIR/CodeGen/X86/sse2-builtins.c

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,37 @@
1717
#include <immintrin.h>
1818

1919
__m128d test_mm_undefined_pd(void) {
20-
// CIR-X64-LABEL: _mm_undefined_pd
21-
// CIR-X64: %{{.*}} = cir.const #cir.zero : !cir.vector<2 x !cir.double>
22-
// CIR-X64: cir.return %{{.*}} : !cir.vector<2 x !cir.double>
23-
// LLVM-X64-LABEL: test_mm_undefined_pd
24-
// LLVM-X64: store <2 x double> zeroinitializer, ptr %[[A:.*]], align 16
25-
// LLVM-X64: %{{.*}} = load <2 x double>, ptr %[[A]], align 16
26-
// LLVM-X64: ret <2 x double> %{{.*}}
20+
// CIR-LABEL: test_mm_undefined_pd
21+
// CIR: %{{.*}} = cir.const #cir.zero : !cir.vector<2 x !cir.double>
22+
// CIR: cir.return %{{.*}} : !cir.vector<2 x !cir.double>
23+
24+
// LLVM-LABEL: test_mm_undefined_pd
25+
// LLVM: store <2 x double> zeroinitializer, ptr %[[A:.*]], align 16
26+
// LLVM: %{{.*}} = load <2 x double>, ptr %[[A]], align 16
27+
// LLVM: ret <2 x double> %{{.*}}
28+
29+
// OGCG-LABEL: test_mm_undefined_pd
30+
// OGCG: store <2 x double> zeroinitializer, ptr %[[A:.*]], align 16
31+
// OGCG: %{{.*}} = load <2 x double>, ptr %[[A]], align 16
32+
// OGCG: ret <2 x double> %{{.*}}
2733
return _mm_undefined_pd();
2834
}
2935

3036
__m128i test_mm_undefined_si128(void) {
31-
// CIR-LABEL: _mm_undefined_si128
32-
// CIR-CHECK: %[[A:.*]] = cir.const #cir.zero : !cir.vector<2 x !cir.double>
33-
// CIR-CHECK: %{{.*}} = cir.cast bitcast %[[A]] : !cir.vector<2 x !cir.double> -> !cir.vector<2 x !s64i>
34-
// CIR-CHECK: cir.return %{{.*}} : !cir.vector<2 x !s64i>
37+
// CIR-LABEL: test_mm_undefined_si128
38+
// CIR: %[[A:.*]] = cir.const #cir.zero : !cir.vector<2 x !cir.double>
39+
// CIR: %{{.*}} = cir.cast bitcast %[[A]] : !cir.vector<2 x !cir.double> ->
40+
// CIR: cir.return %{{.*}} :
41+
42+
// LLVM-LABEL: test_mm_undefined_si128
43+
// LLVM: store <2 x i64> zeroinitializer, ptr %[[A:.*]], align 16
44+
// LLVM: %{{.*}} = load <2 x i64>, ptr %[[A]], align 16
45+
// LLVM: ret <2 x i64> %{{.*}}
3546

36-
// LLVM-CHECK-LABEL: test_mm_undefined_si128
37-
// LLVM-CHECK: store <2 x i64> zeroinitializer, ptr %[[A:.*]], align 16
38-
// LLVM-CHECK: %{{.*}} = load <2 x i64>, ptr %[[A]], align 16
39-
// LLVM-CHECK: ret <2 x i64> %{{.*}}
47+
// OGCG-LABEL: test_mm_undefined_si128
48+
// OGCG: store <2 x i64> zeroinitializer, ptr %[[A:.*]], align 16
49+
// OGCG: %{{.*}} = load <2 x i64>, ptr %[[A]], align 16
50+
// OGCG: ret <2 x i64> %{{.*}}
4051
return _mm_undefined_si128();
4152
}
4253

0 commit comments

Comments
 (0)