What does GlobalMaxPooling1D() do to output of LSTM unit in Keras?
No, it takes max across steps.

Suppose the output x of your Bidirectional(LSTM()) has shape  (batch_size, steps, hidden_size), then after GlobalMaxPooling1D() your max_pool would have shape (batch_size, hidden_size).