diff --git a/swift/ql/test/extractor-tests/expressions/all.expected b/swift/ql/test/extractor-tests/expressions/all.expected
index edb8c16c545..d0068a17220 100644
--- a/swift/ql/test/extractor-tests/expressions/all.expected
+++ b/swift/ql/test/extractor-tests/expressions/all.expected
@@ -229,3 +229,30 @@
| expressions.swift:154:22:154:56 | \\...[...] | KeyPathApplicationExpr |
| expressions.swift:154:33:154:33 | keyPathB | DeclRefExpr |
| expressions.swift:154:52:154:55 | #keyPath(...) | KeyPathExpr |
+| expressions.swift:158:3:158:3 | _ | DiscardAssignmentExpr |
+| expressions.swift:158:3:158:8 | ... = ... | AssignExpr |
+| expressions.swift:158:7:158:7 | .~(_:) | MethodRefExpr |
+| expressions.swift:158:7:158:7 | Int.Type | TypeExpr |
+| expressions.swift:158:7:158:8 | call to ~(_:) | PrefixUnaryExpr |
+| expressions.swift:158:8:158:8 | 1 | IntegerLiteralExpr |
+| expressions.swift:159:3:159:3 | _ | DiscardAssignmentExpr |
+| expressions.swift:159:3:159:11 | ... = ... | AssignExpr |
+| expressions.swift:159:7:159:7 | 1 | IntegerLiteralExpr |
+| expressions.swift:159:7:159:11 | ... .&(_:_:) ... | BinaryExpr |
+| expressions.swift:159:9:159:9 | .&(_:_:) | MethodRefExpr |
+| expressions.swift:159:9:159:9 | Int.Type | TypeExpr |
+| expressions.swift:159:11:159:11 | 2 | IntegerLiteralExpr |
+| expressions.swift:160:3:160:3 | _ | DiscardAssignmentExpr |
+| expressions.swift:160:3:160:11 | ... = ... | AssignExpr |
+| expressions.swift:160:7:160:7 | 1 | IntegerLiteralExpr |
+| expressions.swift:160:7:160:11 | ... .\|(_:_:) ... | BinaryExpr |
+| expressions.swift:160:9:160:9 | .\|(_:_:) | MethodRefExpr |
+| expressions.swift:160:9:160:9 | Int.Type | TypeExpr |
+| expressions.swift:160:11:160:11 | 2 | IntegerLiteralExpr |
+| expressions.swift:161:3:161:3 | _ | DiscardAssignmentExpr |
+| expressions.swift:161:3:161:11 | ... = ... | AssignExpr |
+| expressions.swift:161:7:161:7 | 1 | IntegerLiteralExpr |
+| expressions.swift:161:7:161:11 | ... .^(_:_:) ... | BinaryExpr |
+| expressions.swift:161:9:161:9 | .^(_:_:) | MethodRefExpr |
+| expressions.swift:161:9:161:9 | Int.Type | TypeExpr |
+| expressions.swift:161:11:161:11 | 2 | IntegerLiteralExpr |
diff --git a/swift/ql/test/extractor-tests/expressions/expressions.swift b/swift/ql/test/extractor-tests/expressions/expressions.swift
index bc720abe70f..42eb9d9fcb3 100644
--- a/swift/ql/test/extractor-tests/expressions/expressions.swift
+++ b/swift/ql/test/extractor-tests/expressions/expressions.swift
@@ -152,4 +152,11 @@ func test(a : A, keyPathInt : WritableKeyPath, keyPathB : WritableKeyPat
var apply_keyPathInt = a[keyPath: keyPathInt]
var apply_keyPathB = a[keyPath: keyPathB]
var nested_apply = a[keyPath: keyPathB][keyPath: \B.x]
-}
\ No newline at end of file
+}
+
+func bitwise() {
+ _ = ~1
+ _ = 1 & 2
+ _ = 1 | 2
+ _ = 1 ^ 2
+}
diff --git a/swift/ql/test/library-tests/ast/PrintAst.expected b/swift/ql/test/library-tests/ast/PrintAst.expected
index 54af4da242c..6b837081217 100644
--- a/swift/ql/test/library-tests/ast/PrintAst.expected
+++ b/swift/ql/test/library-tests/ast/PrintAst.expected
@@ -4338,6 +4338,47 @@ expressions.swift:
# 154| getPattern(0): [NamedPattern] nested_apply
# 154| getElement(5): [ConcreteVarDecl] nested_apply
# 154| Type = Int
+# 157| [ConcreteFuncDecl] bitwise()
+# 157| InterfaceType = () -> ()
+# 157| getBody(): [BraceStmt] { ... }
+# 158| getElement(0): [AssignExpr] ... = ...
+# 158| getDest(): [DiscardAssignmentExpr] _
+# 158| getSource(): [PrefixUnaryExpr] call to ~(_:)
+# 158| getFunction(): [MethodRefExpr] .~(_:)
+# 158| getBase(): [TypeExpr] Int.Type
+# 158| getTypeRepr(): [TypeRepr] Int
+# 158| getArgument(0): [Argument] : 1
+# 158| getExpr(): [IntegerLiteralExpr] 1
+# 159| getElement(1): [AssignExpr] ... = ...
+# 159| getDest(): [DiscardAssignmentExpr] _
+# 159| getSource(): [BinaryExpr] ... .&(_:_:) ...
+# 159| getFunction(): [MethodRefExpr] .&(_:_:)
+# 159| getBase(): [TypeExpr] Int.Type
+# 159| getTypeRepr(): [TypeRepr] Int
+# 159| getArgument(0): [Argument] : 1
+# 159| getExpr(): [IntegerLiteralExpr] 1
+# 159| getArgument(1): [Argument] : 2
+# 159| getExpr(): [IntegerLiteralExpr] 2
+# 160| getElement(2): [AssignExpr] ... = ...
+# 160| getDest(): [DiscardAssignmentExpr] _
+# 160| getSource(): [BinaryExpr] ... .|(_:_:) ...
+# 160| getFunction(): [MethodRefExpr] .|(_:_:)
+# 160| getBase(): [TypeExpr] Int.Type
+# 160| getTypeRepr(): [TypeRepr] Int
+# 160| getArgument(0): [Argument] : 1
+# 160| getExpr(): [IntegerLiteralExpr] 1
+# 160| getArgument(1): [Argument] : 2
+# 160| getExpr(): [IntegerLiteralExpr] 2
+# 161| getElement(3): [AssignExpr] ... = ...
+# 161| getDest(): [DiscardAssignmentExpr] _
+# 161| getSource(): [BinaryExpr] ... .^(_:_:) ...
+# 161| getFunction(): [MethodRefExpr] .^(_:_:)
+# 161| getBase(): [TypeExpr] Int.Type
+# 161| getTypeRepr(): [TypeRepr] Int
+# 161| getArgument(0): [Argument] : 1
+# 161| getExpr(): [IntegerLiteralExpr] 1
+# 161| getArgument(1): [Argument] : 2
+# 161| getExpr(): [IntegerLiteralExpr] 2
patterns.swift:
# 1| [ConcreteFuncDecl] basic_patterns()
# 1| InterfaceType = () -> ()
diff --git a/swift/ql/test/library-tests/ast/expressions.swift b/swift/ql/test/library-tests/ast/expressions.swift
index bc720abe70f..42eb9d9fcb3 100644
--- a/swift/ql/test/library-tests/ast/expressions.swift
+++ b/swift/ql/test/library-tests/ast/expressions.swift
@@ -152,4 +152,11 @@ func test(a : A, keyPathInt : WritableKeyPath, keyPathB : WritableKeyPat
var apply_keyPathInt = a[keyPath: keyPathInt]
var apply_keyPathB = a[keyPath: keyPathB]
var nested_apply = a[keyPath: keyPathB][keyPath: \B.x]
-}
\ No newline at end of file
+}
+
+func bitwise() {
+ _ = ~1
+ _ = 1 & 2
+ _ = 1 | 2
+ _ = 1 ^ 2
+}